2009-11-05 5 views
3

Je me demandais si c'est une mauvaise pratique d'avoir un file_table { id, name, status} et un extra_data table { id, fileId FK(file.id), otherData}. Jusqu'à présent, toutes mes tables vont de l'avant et je n'ai jamais eu besoin d'obtenir l'identifiant d'une table, puis faire une requête pour obtenir plus de données en utilisant un identifiant.Est-ce une mauvaise pratique de «reculer» avec une clé étrangère?

Est-ce une mauvaise pratique et si oui, alors pourquoi?

+0

Pourquoi est-ce que je pense à Arby quand je regarde votre représentant? –

+0

@mmyers me fait penser à un numéro de téléphone de télévision (555-555-5555) –

+2

QUELQU'UN QUI A RUINED IT! –

Répondre

4

Ce n'est pas une mauvaise pratique En fait c'est à quoi devrait ressembler un design robuste. En ce moment, vous avez établi une «relation» avec le fichier tables et extra_data. Cependant, pour que la base de données soit normalisée, vous devez tenir compte de la cardinalité de la relation entre les tables. En fonction de cette cardinalité, vous saurez comment placer le FK ou vous créerez peut-être une nouvelle table de relations. Plus sur la cardinalité pourrait être trouvé here

+0

D'accord, les détails sont trop vagues pour spécifier la cardinalité requise. Si toutes les colonnes sont NULL, alors elles n'ont même pas de clé! – onedaywhen

5

Ceci est parfaitement bien. Votre table conçue comme disposée, établit qu'un enregistrement file_table peut être associé à 0 ou plusieurs enregistrements extra_data. Cependant, un enregistrement extra_data ne peut être associé qu'à un seul enregistrement file_table.

Que voulez-vous dire en revenant en arrière?

+0

Il veut dire que la clé étrangère la méthode dit "Je suis un livre appelé 'Foo', je suis sur la bibliothèque en chêne.", alors qu'une méthode orientée objet dirait "Je suis la bibliothèque en chêne, je contient ces livres: 'Foo', 'Bar', 'Baz "". Le lien est dans la direction opposée. – Timmmm

0

Je ne peux pas penser à une autre façon de mettre en œuvre de la collecte d'éléments associés à un autre élément. Qu'est-ce que j'oublie ici?

Questions connexes