Есть ли ограничение на количество таблиц в базе данных? - PullRequest
8 голосов
/ 06 апреля 2011

Есть ли ограничение на количество таблиц в базе данных? Будет ли это считаться плохим программированием или как? У меня много информации о пользователе, и мне интересно, будет ли хорошо иметь много таблиц?

Ответы [ 8 ]

9 голосов
/ 06 апреля 2011

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

4 голосов
/ 06 апреля 2011

Только что нашел это

http://bobfield.blogspot.com/2006/03/million-tables.html

Так что, если вы подозреваете, что у вас будет более миллиона таблиц, вам следует подумать о редизайне базы данных;) Также обратите внимание, что этот пост от2006

4 голосов
/ 06 апреля 2011

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

3 голосов
/ 06 апреля 2011

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

3 голосов
/ 06 апреля 2011

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

1 голос
/ 18 августа 2015

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

1 голос
/ 06 апреля 2011

Да, есть предел ... но вы, вероятно, найдете его.65 000 последний раз я слышал .. http://forums.mysql.com/read.php?32,100653,100653

0 голосов
/ 08 августа 2016

Зачем помещать пользователей в свои таблицы? Похоже, трата времени для меня. Одна таблица пользователей с идентифицирующим идентификатором, которая увеличивается при каждом добавлении новой строки, будет работать нормально.

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

Экономит пространство и время - плюс он чище.

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