Нормально ли иметь таблицу с 40-50 столбцами в базе данных? - PullRequest
0 голосов
/ 16 ноября 2010

Нормально ли иметь таблицу с 40-50 столбцами в базе данных?

Ответы [ 7 ]

2 голосов
/ 16 ноября 2010

Зависит от вашей модели данных. Каким-то образом «аккуратнее» разбивать данные на несколько таблиц и связывать их друг с другом, но также возможно, что ваши данные таковы, что их невозможно или нет смысла разбивать.

Если вы хотите иметь меньше столбцов просто «ради этого», и при этом нет значительного снижения производительности - нет необходимости. Если вы обнаружите, что используете меньше столбцов, чем в таблице, разбейте их на части ...

1 голос
/ 16 ноября 2010

Да, если все эти 40-50 столбцов зависят от ключа, всего ключа и только ключа таблицы.

1 голос
/ 16 ноября 2010

Нередко нормализуется база данных для повышения производительности: объединение таблиц приводит к меньшему количеству объединений во время запросов.

Таким образом, денормализованные таблицы имеют больше столбцов, и дублированные данные могут статьпроблема, но иногда это единственный способ получить нужную вам производительность.

Мне кажется, мне задают этот вопрос на каждом собеседовании, на которое я иду:

Когда бы вы денормализовалибаза данных?

0 голосов
/ 16 ноября 2010

Количество столбцов не зависит от того, нормализованы данные или нет. Это содержание столбцов, которые скажут вам это. Колонны такие вещи как Phone1, phone2, phone3? Тогда конечно таблица не нормализуется и должна быть разбита на части. Но если все они являются различными элементами, которые находятся в соотношении один к одному со значением ключа, то 40-50 столбцов можно нормализовать.

Это не значит, что вы всегда хотите хранить их в одной таблице. Если объединенный размер этих столбцов больше, чем фактические байты, разрешенные для каждой строки данных в базе данных, вам может быть лучше создать две или более таблиц в соотношении один к одному друг с другом. В противном случае у вас будут проблемы с хранением данных, если все поля имеют максимальный размер или близки к нему. И если в большинстве случаев некоторые поля не нужны, для них также может потребоваться отдельная таблица.

0 голосов
/ 16 ноября 2010

Я не знаю о "нормальном", но это не должно вызывать никаких проблем.Если у вас есть много «необязательных» столбцов, которые в большинстве случаев являются нулевыми, или многие поля очень большие и не часто запрашиваются, то, возможно, схему можно нормализовать или настроить немного больше, но само число столбцоввопрос.

0 голосов
/ 16 ноября 2010

Звучит не очень нормализованно, поэтому вы можете посмотреть на это . Но это действительно зависит от того, что вы храните, я полагаю ...

0 голосов
/ 16 ноября 2010

Зависит от того, что вы называете нормальным.Если вы крупная корпоративная корпорация, это ненормально, потому что у вас слишком мало столбцов.

Но если вам трудно работать с таким количеством столбцов, у вас, вероятно, есть проблема и вам нужно что-то делатьэто: либо абстрагируйте множество столбцов, либо разделите вашу модель данных на что-то более управляемое.

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