Я выполняю проект на MySQL 8 и PHP 7.2 на Laravel 6 framework
У меня EAV-ситуация:
page table:
id | project_id | page
1 | 1 | about-us
2 | 1 | home
3 | 2 | home
page_attributes table:
id | page_id | attribute | type
1 | 1 | speed | float
2 | 1 | title | text
attribute_values table:
id | page_attribute_id | value
1 | 1 | 5.22
2 | 2 | page title is this
Теперь мой вопрос в том, что в таблице attribute_values лучше иметь только один столбец для типов с плавающей запятой и текста, как я, или иметь два отдельных столбца, один для value_text и другой value_float?
И если я было больше типов, таких как int, boolean, ... что тогда? какой способ лучше?
ОБНОВЛЕНИЕ:
@ strawberry упомянул способ, который я даже не подумал, если он считает, что лучше иметь несколько таблиц для каждого типа данных Теперь это выглядит так:
- с одним столбцом для всех типов данных
- с несколькими столбцами для каждого типа данных
- с несколькими таблицами для каждого типа данных Типы
Примечание: я имею дело с около 50 миллионов записей