Quoi de mieux, en termes de performances?SQL - Une très longue table avec plusieurs clés étrangères VS plusieurs tables courtes
Une table avec plusieurs clés étrangères et beaucoup de lignes
OU
Plusieurs tables avec une des clés étrangères avec moins de données par table.
Exemple:
Je veux créer une table qui sera contient des notes pour l'utilisateur à droite, et chaque note sera liée à une autre table. Sur une option, il sera
Notes (ID, texte, CustomerID, AccountID, UserID, AnotherID) qui contiendra des valeurs nulles pour chaque sans rapport avec la clé si étrangère:
ID Text CustomerID AccountID UserID AnotherID
1 "Call James" 1 null null null
2 "Call Havale" null 2 null null
3 "Call Shimi" null null 4556 null
Une autre option sera pour ouvrir des tables séparées qui seront tapés clé étrangère pour chaque:
AccountNotes(ID, Text, AccountID)
CustomerNotes(ID, Text, CustomerID)
UserNotes(ID, Text, UserID), etc...
la dernière option sera de le traiter comme un plusieurs à plusieurs, bien qu'il ne soit pas (la table Notes_to_Accounts(NoteID,AccountID)
, par exemple ..) .
Toutes les réponses que j'ai trouvées ici étaient d'environ une table avec plusieurs colonnessthen beaucoup de petites tables avec moins de colonnes, ce qui n'est pas le problème que j'essaie de résoudre.
je l'ai écrit cette option aussi, mais pouvez-vous expliquer pourquoi est-il mieux? encore une fois, le seul aspect dont je me soucie est ce scénario. –
Je pense que dans votre application client Note sera une classe et un certain contrôle de l'interface utilisateur pour cela. C'est mieux quand une table = une classe –
qu'elle ne doit pas l'être, si la performance db sera meilleure sur une seule table avec moins de données dessus. –