Есть ли такая вещь, как слишком много таблиц? - PullRequest
16 голосов
/ 20 марта 2010

Я искал стекопоток около часа и не смог найти ни одной связанной темы, поэтому прошу прощения, если это дублирующий вопрос.

Мой вопрос такой. Есть ли момент, когда в базе данных слишком много таблиц? Даже если структура хорошо организована, продумана и отлично облегчает замысел дизайна? У меня есть база данных, которая быстро приближается к 40 таблицам - около 10 основных и более 30 вспомогательных таблиц (соединительные таблицы, таблицы перечисления и т. Д.).

Я просто плохой разработчик - или я должен попробовать что-то другое? Мне кажется, что так много, я действительно боюсь, как это повлияет на производительность проекта. Я сделал много уплотнений, где это возможно, сгруппировал подобные вещи, где это возможно, и т. Д.

База данных построена на SQL Server 2008.

Ответы [ 9 ]

16 голосов
/ 20 марта 2010

У вас должно быть ровно столько таблиц, сколько вам нужно; не больше, не меньше.

В одной из систем, над которой я сейчас работаю, есть 143 таблицы - потому что это именно то число, которое необходимо для решения проблемы.

6 голосов
/ 20 марта 2010

LOL, наша основная база данных имеет более 700 таблиц, я не работал с такой маленькой базой данных, в которой было только 40 таблиц за годы и годы.

Пока у вас есть нужные вам таблицы и они нормализованы, у вас все в порядке.

Я видел больше проблем с производительностью, вызванных слишком малым количеством таблиц, чем слишком большим.

4 голосов
/ 20 марта 2010

Похоже, вы делаете все возможное, чтобы нормализовать вашу базу данных. Это хорошая вещь. Часто возникают проблемы из-за недостатка таблиц.

2 голосов
/ 20 марта 2010

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

Для SQL-сервера ограничения максимальная емкость указывают, что БД может содержать ~ 2000000000 таблиц (если она не содержит ничего другого, не имеет PK или каких-либо ограничений и т. Д.). Само собой разумеется, что если вы достигнете этого предела, то вы делаете что-то не так (например, вы решили иметь по 1 таблице на одного клиента, и каким-то образом вы действительно получили много клиентов)

2 голосов
/ 20 марта 2010

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

1 голос
/ 24 марта 2010

2147483648 таблиц или более может быть проблематичным с некоторыми двигателями. 9223372036854775808 таблицы или более могут быть проблематичными с некоторыми другими.

(Но если ваш вопрос имел в виду, существует ли определенное число n такое, что дизайн базы данных с> n таблицами обязательно должен быть некорректным, то нет.)

1 голос
/ 20 марта 2010

Это действительно зависит от сложности приложения, которое вы пытаетесь реализовать.Такие вещи, как системы бухгалтерского учета, довольно интенсивны, легко достигли более 40 таблиц

0 голосов
/ 20 марта 2010

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

Но здесь дело не в этом.
Таблицы - это некая организационная структура. Они какие-то ящики.

У меня слишком много ящиков?

Это зависит ...

0 голосов
/ 20 марта 2010

На моей собственной работе у меня около 60 таблиц, и это, кажется, немного) Я думаю, что главное, как организовано хранилище данных (отношения между таблицами и т. Д.), сколько запросов вам нужно, чтобы получить необходимую информацию, и насколько просто ваши данные могут быть представлены как бизнес-объекты в вашем приложении.

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