Дизайн базы данных Facebook ... зачем нужна таблица профиля? - PullRequest
1 голос
/ 30 мая 2011

см. Изображение ниже enter image description here

Так как 1 учетная запись имеет 1 профиль профиля, зачем нужна таблица профиля? Какова цель таблицы профиля, кроме хранения статуса. Почему бы не включить статус в таблицу «Учетная запись» и установить прямую связь между таблицей «Учетная запись» и BasicInformation, PersonalInformation и т. Д.

http://i.stack.imgur.com/u7GKB.jpg

Ответы [ 4 ]

3 голосов
/ 30 мая 2011

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

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

2 голосов
/ 30 мая 2011

Некоторые идеи и образованные предположения.

  • На концептуальном уровне учетная запись и профиль - это две разные вещи.
  • Добавление статуса профиля в таблицу счетов делает эту таблицушире и медленнее.
  • Поскольку статус содержит только ваш последний пост (верно?), эту таблицу можно поместить в отдельное табличное пространство, возможно, в безумно быстрый дисковый массив для быстрого поиска.
  • Состояние, вероятно, просматривается гораздо чаще, чем что-либо в таблице учетных записей.
  • Управлять безопасностью проще.Многим сторонним приложениям может быть разрешен доступ к вашему статусу, но они не обязательно должны иметь доступ к вашему адресу электронной почты и паролю.Физическую изоляцию (отдельные таблицы) довольно легко получить, очевидно, правильно.
1 голос
/ 30 мая 2011

Полагаю, это связано с тем, что не с каждой учетной записью связан профиль.то есть отношения на самом деле 1: 0/1, а не 1: 1.

0 голосов
/ 30 мая 2011

Это просто вопрос абстракции.

В учетной записи есть данные профиля. Итак, у него есть экземпляр (таблица) профиля.

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

...