Multi-table est compliquée, donc, une seule table est pratique, simple et mérite donc d'être considérée. En supposant que la liste de souhaits est une caractéristique d'un site Web, où certains utilisateurs viennent, créer un compte d'utilisateur, puis énumérer leurs souhaits, il peut ne pas être complètement évident, mais si vous y pensez, la question doit être posée, pourquoi voudriez-vous avoir une table d'en-tête définissant la ou les liste (s) de souhaits au lieu d'avoir seulement la deuxième table, énumérant les souhaits. Dans mon esprit, la nécessité d'une telle approche indique que chaque utilisateur voudra (probablement) avoir plus d'une liste de souhaits. Un pour les amis et parents proches et un pour l'aventure de vaisseau spatial prévu pour l'année 2050 :) Sinon, tous les souhaits pourraient probablement être soigneusement répertoriés dans la liste des souhaits (deuxième), sans le premier, pour une liste de souhaits énorme (appelons-le par défaut liste de souhaits), sans distinction entre les désirs, soyez quelque chose que vous souhaitez pour un cadeau, ou prévoyez d'accomplir tout en préparant pour les aventures de vaisseau spatial (mai tous vos souhaits se réalisent :)).
Pour en revenir à la conception des tables, voici quelques considérations. Si vous ne prévoyez pas
- utilisation liste de souhaits pour la liste de souhaits réalisation
- ajouter des détails, des détails pour chacun des « whishes » séparément
que de stocker la liste dans quelque chose comme une longue chaîne champ permet une seule table. Si vous avez besoin de 2, ajouter une deuxième table est justifié, mais vous pouvez toujours l'éviter en tournant le champ "chaîne longue" dans une colonne XML avec des attributs, où vous pouvez associer l'élément souhaité et quelques commentaires et/ou informations supplémentaires.
Si vous avez besoin de 1, deux solutions de table sont requises afin qu'une relation puisse être établie entre les éléments de la liste de souhaits et tout élément lié à cet élément spécifique, que ce soit un cadeau d'ami ou de parent. souhait, ou quelque chose comme un catalogue de choses stockées dans une autre table.
Si vous utilisez une approche multi-tables, vous devez faire attention à ce que le tableau répertoriant les souhaits individuels n'ait pas d'entrées sans entrée d'en-tête correspondante définissant la liste elle-même. Généralement, les bases de données utilisent une clé étrangère pour appliquer une telle relation. Ainsi, le tableau "item" devra avoir un champ avec une clé de la table parent. En résumé, il est très probable que vous aurez 2 ou 3 tables. Tableau 1 - Liste des comptes utilisateurs Dans le cas le plus simple, cette table aura un champ "ma liste de souhaits" avec une longue chaîne de caractères et/ou une colonne XML. Tableau 2 - énumération des listes de souhaits d'utilisateurs avec une clé notant le compte d'utilisateur associé. Tableau 3 - énumération des éléments de souhait, avec la clé de l'un ou l'autre compte utilisateur (si l'utilisateur ne peut avoir qu'une seule liste de souhaits) ou Tableau 2 si chaque utilisateur peut avoir plusieurs listes de souhaits distinctes. Enfin, en théorie, les utilisateurs peuvent avoir des listes de souhaits partagés. Par exemple, Kate et Simon envisagent de se marier en l'an 2025. Ils souhaitent avoir une cérémonie de mariage dans une cabine sur Vashon Island (la ligne est longue et la dernière fois que j'ai vérifié l'endroit est réservé 4 ans à l'avance). Dans ce cas, une possibilité de 4ème table arrive. Ce tableau permettra de comparer les "utilisateurs" et les "listes de souhaits", afin de permettre la propriété jointe de la liste de souhaits.
Espérons que cela aide.
- bravo!
J'aimerais vous aider, mais je n'ai qu'une vague idée de ce que vous essayez de représenter ici. Précisez s'il vous plaît! –
@Thom, je viens d'éditer, j'espère que c'est beaucoup plus clair –