Buenas,

La solución más óptima depende de varias cosas:
- Volumen de datos e información que vas a manejar
- Número de accesos L/E
- Necesidad de acceder a los datos de forma concurrente
- Tiempos de respuesta
- etc.

En cualquier caso, siempre has de contemplar las operaciones CRUD (Create, Read, Update, Delete)... En la solución que elijas, ¿cómo sería de fácil crear un dato, leerlo, modificarlo y eliminarlo?

Un saludo.