Помогите мне для создания огромной базы данных в Mysql - PullRequest
0 голосов
/ 14 апреля 2009

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

Мне нужны предложения от PHP Mysql People.

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

Если бы я мог создать отдельные базы данных для каждой камеры, было бы почти 50 * 1000 таблиц, потому что у нас 1000 городов.

Поэтому, пожалуйста, дайте предложения, как я могу создать базу данных для моей системы.

Спасибо Ravi

Ответы [ 4 ]

3 голосов
/ 14 апреля 2009

Избегайте проектов базы данных с номерами таблиц жидкости. Таблицы не являются строками. Нет смысла иметь новую таблицу для каждого города. У каждого города есть имя, местоположение и множество других общих свойств, имеющих отношение к вашему бизнесу. Не имеет смысла иметь кучу таблиц, которые имеют одинаковую структуру. Я предлагаю вам создать таблицу для стран, таблицу для городов и другую таблицу для «палаты». Свяжите каждый город со страной. Если вы ожидаете работать с тысячами городов, это хорошо. Таблица в MySQL может легко обрабатывать тысячи строк, не занимая много ресурсов ваших серверов. Если в каждом городе есть что-то уникальное, для чего нужны переменные поля, возможно, вы захотите сделать это по-другому, но, вероятно, вам никогда не потребуется создавать тысячи таблиц.

3 голосов
/ 14 апреля 2009

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

В любом случае, если у вас есть 2 объекта Город и Палата, вам нужно 2 стола:

  • Таблица1: города
  • Отношение: 1-н
  • Таблица2: камеры
1 голос
/ 14 апреля 2009

Вам нужно нормализовать то же самое, независимо от города. Или палата.

Один из способов думать об этом - посмотреть на все нужные вам сущности. Очевидно, «город» является одним из них. Не должно быть никаких причин, по которым вы не можете использовать одну таблицу для представления всех городов. Хорошо, теперь вы можете определить, в каком городе находится камера, с помощью еще одного поля. Так что теперь все камеры могут быть в одном столе. Это также дает возможность сказать, что палата принадлежит только одному городу, но город может иметь более одной палаты. Это называется отношением один ко многим.

Отношения между одними и теми же типами объектов (например, города) являются более сложными. Вы должны точно определить, каковы отношения: в частности, как они называются и как называется каждая сторона. Если вам нужны отношения «многие ко многим», т. Е. Город связан с несколькими другими городами, вам понадобится еще одна таблица для перечисления этих отношений. Изучение этого вопроса выходит за рамки этого поля для ответов, поэтому я рекомендую вам найти хорошую книгу или веб-страницу о дизайне базы данных, особенно о нормализации.

1 голос
/ 14 апреля 2009

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

вопрос: вам вообще нужны грязные хаки производительности? тысячи городов не являются проблемой производительности как таковой, все зависит от хороших показателей, сервера (ов), настройки, рабочей нагрузки, ...

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