Pregunta

Estoy intentando modelar una tienda de comestibles. En la tienda, hay varios " pasillos " ;. Cada " pasillo " tiene un grupo de " categorías " de " elementos " se almacena. Cada " categoría " solo puede pertenecer a un " pasillo " ;. Cada " artículo " solo puede tener una " categoría " ;.

El modelo de datos me parece sencillo:

  • Un " pasillo " mesa con una identificación y descripción
  • una categoría " " tabla con un ID, NOMBRE y un AISLE_ID que hace referencia al " pasillo " mesa
  • Un elemento " " " tabla con un ID, NOMBRE, DESCRIPCIÓN y un CATEGORY_ID que hace referencia a la categoría " "

El modelo de objetos es donde necesito ayuda:

  1. Un objeto de Pasillo puede tener una lista de objetos de Categoría y Artículo dentro de él.
  2. Un objeto de Pasillo puede tener una lista de objetos de Categoría. Un objeto de categoría puede tener una lista de objetos de elemento dentro de él.
  3. Un Pasillo puede tener una lista de objetos Elemento. Un objeto de categoría puede tener una lista de objetos de elemento.

En cada caso, un Artículo tendrá lógicamente un objeto de Categoría dentro de él. Tengo un DAO para cada objeto de dominio, por lo que, dependiendo de la forma en que se realiza, el sql cambia un poco. ¿Algún pensamiento?

¿Fue útil?

Solución

Voto por la opción # 2. Tiene más sentido que # 1 o # 3.

¿Crees que las relaciones deben ser bidireccionales? ¿Debería un artículo tener la capacidad de averiguar quiénes son la categoría principal y el pasillo de los abuelos?

Otros consejos

Iría con la opción # 2.

La principal preocupación de un Aisle es qué categorías están contenidas en él. Debería estar en la categoría de Categoría para determinar qué Elementos son miembros. Esto mantiene los niveles de abstracción consistentes en cada objeto, donde Aisle es el objeto de nivel superior, la Categoría es un nivel un poco más detallado y el elemento es el más granular.

El número 2 tiene más sentido si esas son tus únicas 3 opciones.

Creo que, si tuviera que crear este modelo, usaría el siguiente modelo (pequeña modificación, tratando de permanecer lo más cerca posible de sus ideas):

Un objeto de pasillo puede tener una lista de objetos de categoría, un objeto de categoría puede tener una lista de objetos de elemento dentro de él, y un elemento está asociado a una categoría Y a un pasillo.

Mi modificación parece ser más en el lado de los datos.

La razón por la que lo habría hecho, es porque, alguien dice "oye, estoy buscando este artículo en particular, ¿en qué pasillo está? " - Una búsqueda le daría la respuesta. mientras que con su modelo de datos, necesitaría 2 búsquedas.

Al menos así es como lo pienso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top