![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
hug |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.7.2007 Репутация: нет Всего: нет |
Классический EAV
Сущность - продукт. Свойства продуктов - аттрибуты. Не пойму какими классами правильно оперировать? 1) Вариант Product, Attribute
Но тогда получается, что класс Product - одновременно несет 2 функции -Описывает свойств продукта(Например характеризует свойство ПродуктаN) -Является представителем(ПродуктаN) в заказе. Смущает, что у исполнителей этих функций разные id (product_id; product_in_order_id), а класс один 2) Вариант ProductType,Attribute,ProductInOrder
Тут вроде бы разделились понятия категория продуктов, и конкретная заявка на продукт, но как тогда на клиенте будут связаны ProductType,ProductInOrder. Вообщем, не понимаю как правильно это сделать. У кого-нибудь есть идеи? |
||||
|
|||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
1. Какое отношение вопрос имеет к EAV не понятно.
2. Что есть ProductInOrder? Какова структура отношений в базе (как я понимаю, БД уже спроектирована)? |
|||
|
||||
hug |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.7.2007 Репутация: нет Всего: нет |
Структура базы EAV. База в процессе создания
ProductInOrder - заказанный продукт. То есть некий тип продукта с характеристиками Ну например: Визитки: Цвет - красный Плотность: Средняя Размер: 20*40 |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
EAV - это подход описания сущности в виде атрибутов (имя/значение, возможнен тип, атрибутый-сущности и т. д.). С ним вроде у вас всё просто и понятно.
Насчёт продуктов и заказов. Наиболее логично, что продукты - это продукты. А уже далее, если у вас заказ состоит из одного продукта, то наследуем от класса Product класс OrderedProduct. Или же просто вводим флаг IsOrdered. Если в заказе несколько продуктов - то класс Order со списком продуктов. Вообщем, необходимо уточнение вашей ситуации, чтобы можно было что-то сказать ![]() |
|||
|
||||
1stain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 30.7.2007 Где: Киев - Харьков Репутация: 5 Всего: 40 |
Я не силен в классическом EAV, как впрочем и в современном, но кажется мне, что ТС сам себя перехитрить хочет. Есь класс Order, который содержит коллекцию классов OrderLine, в котором кроме всего прочего (заказанное количество, уена на момент заказа...) есть свойство Product.
Где тут применить наследование для Product и с какой стати у Product'a в заказе и просто Product'a разные id сие есть тайна покрытая мраком. Где-то так. ![]() -------------------- Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein) ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |