База данных объединений / ФК - основные вопросы - PullRequest
0 голосов
/ 12 января 2011

Есть 2 таблицы А и В. В каждой, скажем, 10 столбцов. Таблица A имеет 8 столбцов как FK для других таблиц. В таблице B используются перечисления и std без всяких FK.

  • Так какой стол быстрее / лучше использовать?
  • Если я сделаю какое-либо действие с таблицей A, я предполагаю, что мне нужно только коснуться колун Я тоже отношусь к действию и делаю не нужно объединять все 10 таблиц FK даже если мне нужен только 1 FK Colunm?
  • Если я это сделаю нужно выполнять какие-либо действия на ФК, как написать, обновить или удалить значение, мне нужно присоединиться к родителю Таблица?
  • Если я правильно понимаю, EAV модель лучше, чем расширенная Стол Колонна, потому что если мне нужно отобразить два текста из таблицы, то мне нужно использовать внутреннее соединение для Стол Colunm для таблицы EAV я можно использовать обычный выбор только без объединения?

1 Ответ

0 голосов
/ 12 января 2011
  1. Только для нескольких значений, и если количество значений не изменяется, ENUM может быть быстрее и занимать меньше места.Однако, чтобы позже добавить возможные значения, вам нужно будет изменить всю таблицу, что не является хорошим дизайном.В большинстве случаев лучше использовать таблицу A.

  2. Конечно, вы можете присоединиться к таблице A только с теми таблицами, которые вам нужны.

  3. Нет, вы можете просто изменить таблицу, содержащую значение, если вы не измените PK.Тем не менее, вы должны разрабатывать свои таблицы таким образом, чтобы замена PK не требовалась часто - используйте искусственные PK (автоинкременты идеальны).Даже страны перестают существовать или меняют названия ...

  4. Нет, для вашего EAV вам понадобится объединение.Однако объединение ключей происходит очень быстро ... в этом и заключается суть реляционных баз данных, их сильная сторона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...