Hello, je me lance dans la base de données, c'est la fête!
Je dois développer une BD servant à stocker des données. Ok.
Ces données, dans mon prototype actuel, sont stockées dans une table, la table DATA. Ok.
Un logiciel se connecte à la BD, et insère des données. Ok.
L'objectif du jour : centraliser les données de plusieurs utilisateurs dans la même BD. Chaque utilisateur a son logiciel et son login, se connecte et remplit la base. Par défaut un utilisateur n'a pas à voir figurer d'autres données que les siennes, mais il doit y avoir une possibilité de partage.
J'hésite entre 2 solutions:
- j'ai d'abord pensé à simplement rajouter un champ "owner_id" dans la table DATA afin de savoir à qui appartient la donnée. Lorsqu'un utilisateur se connecte, le logiciel fait une jointure afin de récupérer ses données à lui. Le logiciel assure donc la sécurité des accès.
- et je me suis dit que ça serait mieux que chaque utilisateur ait sa propre table : fini la jointure, et on peut sécuriser l'accès à chaque table au niveau de la BD. Ainsi, au lieu d'une seule table DATA, si j'ai 3 users, j'aurai 3 tables : user0_DATA, user1_DATA, user2_DATA.

Qu'en pensez-vous ? Le gain provoqué par la jointure en moins sera-t-il réel ? Quelles-sont les bonnes pratiques dans ce type de cas ?