Могу ли я создать каждую таблицу для каждого пользователя в моей социальной сети? - PullRequest
4 голосов
/ 02 февраля 2011

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

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

Заранее спасибо.

Ответы [ 3 ]

7 голосов
/ 02 февраля 2011

Это не , как вы хотите это сделать.

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

Может быть, что-то вроде этого:

 TABLE users
   - username AS VARCHAR(255)
   - password AS VARCHAR(255) <i>(use a hashed password, of course)</i>
   - ...

Затем, когда пользователь регистрируется, просто вставьте информацию, которую он предоставляет, в таблицу users как новую строку.

2 голосов
/ 02 февраля 2011

Это было бы огромным излишним. Вероятно, вам следует ознакомиться с дизайном базы данных (начните с нормализации, но не переусердствуйте). Затем запишите, что вы хотите сохранить для каждого пользователя, и подумайте, как сохранить его, не сохраняя данные дважды.

Но я почти уверен, что таблица для каждого пользователя не подходит для этого.

0 голосов
/ 09 апреля 2019

Вы, должно быть, путаете значение слов база данных , таблица , поле (или столбец) , запись (или строка) .

  • База данных содержит все ваши данные для конкретного проекта.В каждом проекте всегда есть одна база данных (или почти всегда)
  • Таблица содержит все данные конкретной сущности, и, говоря о сущности, я имею в виду тип объекта, который можно представить как реальный или отдельносуществующий сам по себе.Человек - это сущность, книга - это сущность, телефон - это сущность, фильм - это сущность и т. Д. Каждая из них будет отдельной таблицей в базе данных.
  • Поле (илистолбец) - это тип данных, который представляет конкретную характеристику (особенность) объекта таблицы.Например, таблица пользователей может иметь поля: NAME, SURNAME, AGE и т. Д. Это все функции, которыми обладает пользователь.
  • Запись (или строка) - это фактический элемент одной таблицы.Это единственная часть сущности таблицы.Например, в таблице пользователей одна запись - это один пользователь, а именно: {NAME:"John", SURNAME:"Smith", AGE:"32"}.

. В вашем примере я могу точно сказать, что вам нужна только одна база данных * 1034.*.Вы хотите хранить информацию для многих пользователей, поэтому вам нужна одна таблица с именем USER.Вам нужно будет сохранить функции для своих пользователей, такие как: имя, фамилия, возраст, адрес и т. Д., Затем вам нужно будет создать соответствующие поля в этой таблице: NAME, SURNAME,AGE, ADDRESS и т. Д. Затем вам нужно будет вставить свои данные в базу данных как records .Это будет одна запись на пользователя, которого вы хотите сохранить.

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