Question

Je tente de modéliser une épicerie. Dans le magasin, il y a plusieurs "allées". Chaque " allée " a un groupe de " catégories " de " articles " il stocke. Chaque " catégorie " ne peut appartenir qu'à un seul "couloir". Chaque " article " ne peut avoir qu’une seule "catégorie".

Le modèle de données me semble simple:

  • Un "couloir" table avec un identifiant et une description
  • Une " catégorie " table avec un ID, un NOM et un AISLE_ID qui fait référence à "l'allée". table
  • Un "article". table avec un ID, NAME, DESCRIPTION et un CATEGORY_ID qui référence "catégorie"

Le modèle d'objet est l'endroit où j'ai besoin d'aide:

  1. Un objet d'allée peut contenir une liste d'objets de catégorie et d'élément.
  2. Un objet Allée peut avoir une liste d'objets Catégorie. Un objet Catégorie peut contenir une liste d'objets Item.
  3. Une allée peut avoir une liste d'objets Item. Un objet Catégorie peut avoir une liste d'objets Item.

Dans chaque cas, un élément comportera logiquement un objet Catégorie. J'ai un DAO pour chaque objet de domaine, donc en fonction de la façon dont il est fait, le sql change un peu. Des pensées?

Était-ce utile?

La solution

Je vote pour le choix n ° 2. C’est plus logique que le n ° 1 ou le n ° 3.

Pensez-vous que les relations doivent être bidirectionnelles? Un élément devrait-il avoir besoin de savoir qui sont sa catégorie parent et son allée de grands-parents?

Autres conseils

J'irais avec le choix n ° 2.

La principale préoccupation d’une allée est de savoir quelles catégories y sont contenues. La classe Category devrait déterminer quels éléments sont membres. Cela maintient les niveaux d'abstraction cohérents dans chaque objet - où Allée est l'objet de niveau supérieur, Catégorie est un niveau légèrement plus détaillé et l'élément est le plus granulaire.

Le numéro 2 est logique si ce ne sont que vos 3 options.

Je pense que si je devais créer ce modèle, j'utiliserais le modèle suivant (petite modification, essayant simplement de rester aussi proche que possible de vos idées):

Un objet couloir peut avoir une liste d'objets de catégorie, un objet catégorie peut contenir une liste d'objets d'élément, et un élément est associé à une catégorie ET à un couloir.

Ma modification semble porter davantage sur les données.

La raison pour laquelle j’aurais fait cela, c’est parce que, quelqu'un a dit: "Hé, je cherche cet article en particulier, dans quelle allée se trouve-t-il?" - 1 recherche vous donnerait la réponse. alors qu'avec votre modèle de données, vous auriez besoin de 2 recherches.

Au moins c'est ce que j'en pense.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top