Есть два варианта для организации структуры базы данных. Первый вариант создать одну таблицу с 4 колонками (Ид, тип, ключ, значение). Второй вариант для каждого типа создать собственную таблицу, где в качестве ключа будет выступать колонка таблицы.
Проблема в том, что в первом варианте записей в таблице может быть за 100 000 (хотя он более гибкий), но во-втором случае около 100 таблиц(хотя это не проблема, таблицу генерируются автоматически)
Более наглядная схема:
1 Вариант:
ID | type | key | value
1 'cat1' 'key1' 'value1'
1 'cat1' 'key2' 'value2'
1 'cat1' 'key3' 'value3'
2 'cat1' 'key1' 'value4'
2 'cat1' 'key2' 'value5'
2 'cat1' 'key3' 'value6'
3 'cat2' 'keyn' 'valuen'
....
2 Вариант
Таблица cat1
id | key1 | key2 | key3
1 value1 | value2 | value3
2 value3 | value4 | value5
Вопрос какой вариант оптимальнее. Есть ли глобальные отличия в производительности? Что можно применить, чтобы повысить производительность? Буду рад любому совету
Не понимаю, в чем проблема?
types
id | type | value
1 cat1 | value1
2 cat2 | value2
keys
id | key | value
1 key1 | value1
2 key2 | value2
types_keys
id | type_id | key_id | value
1 1 | 1 | value1
2 1 | 2 | value2
animals
id | value
1 | value1
2 | value2
animals_types_keys
id | animal_id | type_key_id
1 1 | 1
2 1 | 2
Вроде, этот вариант структуры бд позволяет динамично работать с вашими данными.
Хотя, можно и сделать вместо 2 таблиц types_keys и animals_types_keys одну таблицу animals_types_keys:
id | animal_id | type_id | key_id | value
1 1 | 1 | 1 | value1
2 1 | 1 | 2 | value2
Похоже, что это фактически ваша таблица, только приведена к нормальной форме.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть функция отправки sms уведомления на php, она выполняется около 3х секунд, иногда приходится делать рассылку сразу на несколько номеров,...
ЗдравствуйтеСтолкнулся с проблемой, как указать при выборке поля в query builder, которые являются связующими (в моём случае много ко многим)?
Нужен простой скрипт php скрипт для вывода информации с игрового сервера типа:
Как в phpexcel можно сослаться на определенный лист, чтобы использовать в формуле данные с него =СУММ('Part2'!P25:P29), то есть 'Part2' заменить?