Вопрос

Я пытаюсь смоделировать продуктовый магазин.В магазине есть несколько "проходов".У каждого "прохода" есть группа "категорий" "товаров", которые в нем хранятся.Каждая "категория" может принадлежать только к одному "проходу".Каждый "товар" может иметь только одну "категорию".

Модель данных кажется мне прямолинейной:

  • Таблица "проход" с идентификатором и ОПИСАНИЕМ
  • Таблица "category" с идентификатором, ИМЕНЕМ и идентификатором AISLE_ID, который ссылается на таблицу "aisle"
  • Таблица "item" с идентификатором, ИМЕНЕМ, ОПИСАНИЕМ и CATEGORY_ID, которая ссылается на "category"

Объектная модель - это то, где мне нужна помощь:

  1. Объект прохода может содержать список объектов категории и номенклатуры внутри себя.
  2. Объект прохода может содержать список объектов категории.Объект категории может содержать список объектов Item внутри себя.
  3. В проходе может быть список товарных объектов.Объект категории может содержать список объектов Item.

В каждом случае Элемент логически будет иметь внутри себя объект категории.У меня есть DAO для каждого объекта домена, поэтому в зависимости от того, как это сделано, sql немного меняется.Есть какие-нибудь мысли?

Это было полезно?

Решение

Я голосую за выбор №2.Имеет больше смысла, чем # 1 или # 3.

Считаете ли вы, что отношения должны быть двунаправленными?Должен ли Товар иметь возможность определить, кто является его родительской категорией и родственным отделом?

Другие советы

Я бы выбрал вариант № 2.

Главная забота о Проходе заключается в том, какие Категории содержатся в нем.Класс Category должен определять, какие Элементы являются членами.Это обеспечивает согласованность уровней абстракции в каждом объекте - где Aisle является объектом более высокого уровня, Category - немного более детализированным уровнем, а item - наиболее детализированным.

Номер 2 имеет наибольший смысл, если это ваши единственные 3 варианта.

Я думаю, если бы я создавал эту модель, я бы использовал следующую модель (небольшая модификация, просто стараясь оставаться как можно ближе к вашим идеям).:

Объект aisle может содержать список объектов категории, объект category может содержать список объектов item внутри него, и товар связан с категорией И проходом.

Моя модификация, похоже, больше касается данных.

Причина, по которой я бы это сделал, заключается в том, что кто-то говорит: "Эй, я ищу этот конкретный товар, в каком проходе он находится?" - 1 поиск даст вам ответ.принимая во внимание, что с вашей моделью данных вам потребуется 2 поиска.

По крайней мере, так я об этом думаю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top