Я работаю на базе продуктов питания, каждая пища имеет список свойств (жиров, энергию, витамины и т.д.)Один идентификатор для каждого столбца базы данных, как это сделать?
Эти опоры состоят на 50 разных колонках белков, жиров, углеводов, витаминов, элементы, и т.д. (их много)
количество столбцов может увеличиться в будущем, но не слишком много, 80 для крайнего случая
Каждый столбец нуждается в отдельной ссылке на одну библиографию всего списка из другой таблицы (необходимо проверить, является ли это значение надежным или нет).
Рассмотрим идентификаторы, должны содержать номер, а NULL ПВС или 0 для одной конкретной ссылки исключения (будет указывать на другую таблицу)
Я хоть какое-то решение, но они очень разные eachothers, и Я новичок с db, поэтому я понятия не имею о наилучшем решении.
рассматривать значение_1 как белки, значение_2 как углеводы и т.д ..
Лучший (я надеюсь) 2 альтернативы я думал, являются:
(1) создать столбец один VARCHAR (? 255), со всеми 50 идентификаторами, так что-то вроде этого:
column energy (7.00)
column carbohydrates (89.95)
column fats (63.12)
column value_bil_ids (165862,14861,816486) ## as a varchar
etc...
в этом случае я могу разделить его с «» в массив и проверить идентификаторы, но я все еще беспокоюсь о кодировании praticity ... это может сэкономить слишком много столбцов, но Я не знаю, сколько может быть достаточно для масштабирования. В принципе, я думал, что этот вариант обычного для оптимизации запросов (я надеюсь!)
(2) Просто используя дополнительный столбец ID для каждого значения, так:
column energy (7.00)
column energy_bibl_id (165862)
column carbohydrates (89.95)
column carbohydrates_bibl_id (14861)
column fats (63.12)
column fats_bibl_id (816486)
etc...
Это кажется weightful количество столбцов, но прежде всего ясно, особенно для отношения любого столбца значения и его идентификатора.
(3) Создать реляционную таблицу за ценности и библиографии, так
table values
energy
carbohydrates
fats
value_id --> point to table values_and_bibliographies val_bib_id
table values_and_bibliographies
val_bib_id
energy_id --> point to table bibliographies biblio_id
carbohydrates_id --> point to table bibliographies biblio_id
fats_id --> point to table bibliographies biblio_id
table bibliographies
biblio_id
biblio_name
biblio_year
Я не знаю, если это лучшие решения, и я буду благодарен, если кто-то поможет мне принести свет на это!
Помните, что в MySQL существует жесткий предел в 4096 столбцов на таблицу, но это может быть меньше, потому что это зависит от типа данных столбцов: http://dev.mysql.com/ doc/refman/5.0/en/column-count-limit.html –