Я пытаюсь взвесить относительные преимущества и недостатки простой структуры базы данных, такие как это:Проектирование баз данных: гибкость по сравнению с простотой
1.
CREATE TABLE x (
my_id INT PRIMARY KEY,
...,
text_attribute_blah TEXT,
text_attribute_blah_blah TEXT
);
против:
2.
CREATE TABLE x (
my_id INT PRIMARY KEY,
...
)
CREATE TABLE attributes (
my_id INT, /* foreign key to x.my_id */
text_attribute_type INT,
text_attribute TEXT
)
Где атрибут_type может быть blah или blah_blah.
Вариант 1 предлагает простоту - таблица легче читать/писать; Вариант 2 предлагает гибкость (если мы хотим добавить еще один атрибут, такой как blah_blah_blah, нам не нужно изменять схему и, возможно, меньше изменений кода.)
Есть ли правильный или неправильный ответ на эту головоломку? Является ли один из этих вариантов лучшей практикой, чем другие? Можете ли вы указать мне на дальнейшее чтение, которое может помочь определить путь вперед?
Гибкость переоценивается, если вы выполняете свою работу, изменения схемы должны быть редкими. В моем опыте пользователи ненавидят использование программ, которые являются «гибкими», даже если это то, что они говорят, что они хотят. – HLGEM