Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> классы клиента на eav 
:(
    Опции темы
hug
Дата 17.8.2009, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



Классический EAV
Сущность - продукт. Свойства продуктов - аттрибуты.
Не пойму какими классами правильно оперировать?

1) Вариант
Product, Attribute
Код

Product
{
     List<Attribute> attributes;
}


Но тогда получается, что класс Product - одновременно несет 2 функции
-Описывает свойств продукта(Например характеризует свойство ПродуктаN)
-Является представителем(ПродуктаN) в заказе.

Смущает, что у исполнителей этих функций разные id (product_id; product_in_order_id), а класс один

2) Вариант
ProductType,Attribute,ProductInOrder
Код

ProductType
{
     List<Attribute> attributes;
}


Тут вроде бы разделились понятия категория продуктов, и конкретная заявка на продукт, но как тогда на клиенте будут связаны ProductType,ProductInOrder.

Вообщем, не понимаю как правильно это сделать. У кого-нибудь есть идеи?
PM MAIL   Вверх
Любитель
Дата 17.8.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



1. Какое отношение вопрос имеет к EAV не понятно.
2. Что есть ProductInOrder? Какова структура отношений в базе (как я понимаю, БД уже спроектирована)?


--------------------
PM MAIL ICQ Skype   Вверх
hug
Дата 18.8.2009, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 27.7.2007

Репутация: нет
Всего: нет



Структура базы EAV. База в процессе создания
ProductInOrder - заказанный продукт. То есть некий тип продукта с характеристиками
Ну например:
Визитки:
Цвет - красный
Плотность: Средняя
Размер: 20*40
PM MAIL   Вверх
Любитель
Дата 18.8.2009, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



EAV - это подход описания сущности в виде атрибутов (имя/значение, возможнен тип, атрибутый-сущности и т. д.). С ним вроде у вас всё просто и понятно.

Насчёт продуктов и заказов. Наиболее логично, что продукты - это продукты. А уже далее, если у вас заказ состоит из одного продукта, то наследуем от класса Product класс OrderedProduct. Или же просто вводим флаг IsOrdered. Если в заказе несколько продуктов - то класс Order со списком продуктов. Вообщем, необходимо уточнение вашей ситуации, чтобы можно было что-то сказать smile


--------------------
PM MAIL ICQ Skype   Вверх
1stain
Дата 19.8.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

Репутация: 5
Всего: 40



Я не силен в классическом EAV, как впрочем и в современном, но кажется мне, что ТС сам себя перехитрить хочет. Есь класс Order, который содержит коллекцию классов OrderLine, в котором кроме всего прочего (заказанное количество, уена на момент заказа...) есть свойство Product.
Где тут применить наследование для Product и с какой стати у Product'a в заказе и просто Product'a разные id сие есть тайна покрытая мраком.
Где-то так.
user posted image


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0932 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.