Je dirais que c'est l'inverse. D'abord, vous concevez quel genre d'objets vous devez avoir. Pour ceux qui vont créer une table.
Une partie de cette phase consiste à concevoir les clés, c'est-à-dire les combinaisons d'attributs (colonnes) qui identifient l'objet de manière unique. Vous pouvez ou non ajouter une clé artificielle ou une clé de substitution pour des raisons de commodité ou de performance.De ces clés, vous choisissez généralement une clé canonique, la clé primaire, que vous essayez d'utiliser systématiquement pour identifier les objets de cette table (vous gardez les autres clés, elles servent à assurer l'unicité comme règle métier, pas tellement pour l'identification) fins.)
Ensuite, vous pensez quelles relations existent entre les objets. Un objet qui est «détenu» par un autre objet ou un objet qui fait référence à un autre objet a besoin d'un moyen d'identifier son objet associé. Dans la table correspondante (table enfant), vous ajoutez des colonnes pour que la clé étrangère pointe vers la clé primaire de la table référencée.
Cela prend en charge toutes les relations un à plusieurs. Parfois, un objet peut être associé plusieurs fois à un autre objet. Par exemple, une commande peut être utilisée pour commander plusieurs produits, mais un produit peut également apparaître sur plusieurs commandes. Pour ces relations, vous créez une table distincte (table d'intersection - dans cet exemple, order_items). Cette table aura une clé unique créée à partir de deux clés étrangères: l'une pointant vers l'un des parents (commandes), l'autre vers l'autre parent (produits). Et encore, vous ajoutez les colonnes à la table d'intersection dont vous avez besoin pour créer ces clés étrangères. Donc, en bref, vous devez d'abord concevoir les clés et les clés étrangères, seulement alors vous commencez à ajouter des colonnes pour les implémenter.
Vous pouvez trouver cet article utile aussi http://stackoverflow.com/questions/1979522/how-to-fetch-an-object-graph-at-once/1979549#1979549 –