Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2013, 15:20   #1
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию EAV БД

Проектирую EAV БД интернет-магазина:

Код:
// Товары
products (
  product_id [PK], 
  product_group_id [FK], 
  ...)
Код:
// Группы товаров
products_groups (
  product_group_id [PK], 
  ...)
Код:
// Атрибуты групп товаров
groups_attributes (
  group_attribute_id [PK], 
  product_group_id [FK], 
  ...)
Код:
// EAV
attributes_values (
  string_atribute_value_id [FK], 
  product_id [FK], 
  value_id [FK])
Код:
// Целочистенные значения атрибутов
integer_values (
  id [PK], 
  value)
Код:
// Дробные значения атрибутов
float_value (
  id [PK],
  value)
Код:
// Строковы значения атрибутов
string_values (
  id [PK], 
  value)
Хорошо ли хранить не само значение атрибута, а value_id, т.е., например,

не:

Код:
integer_attributes_values (
  string_atribute_value_id [FK], 
  product_id [FK], 
  value)
а:

Код:
attributes_values (
  string_atribute_value_id [FK], 
  product_id [FK], 
  value_id [FK])
Код:
integer_values (
  id [PK], 
  value)
NieL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц