Схема таблицы объектов в социальной сети - PullRequest
0 голосов
/ 21 ноября 2010

Мне трудно сопоставлять объекты в социальной сети, которую я разрабатываю.Я сопоставил список объектов, и у меня есть 122 основных объекта.Существует также отдельный список системных объектов, которые я пока не учитываю.Таким образом, объект представляет собой: фото, видео, фото-тег, видео-тег, почтовое вложение, почту и т. Д. *

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

Теперь, насколько я понимаю, люди дают каждому объекту свою таблицу.Так что у фотографий есть своя таблица, у видео есть своя и т. Д. Но это означает, что у меня будет 122 разных стола для моих объектов.Если я объединю их все в 1 таблицу, то сканирование таблицы будет проблемой, как вы знаете, в социальной сети люди всегда взаимодействуют с объектами, и таблица будет расти очень долго.

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

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

Сведения об объекте для системной отчетности / аналитики
Сведения об объекте, принадлежащие всем объектам, такие как дата создания, конфиденциальность и т. Д.
Сведения об объекте, уникальные для типа объекта.

Конечно, чем больше у меня таблиц, тем более сложные запросы получат esp, если мне понадобится просматривать отчеты по объектам.Вверху у меня есть таблица поиска объектов, в которой есть родительский и дочерний список объектов, поэтому все остальные таблицы объектов будут вытекать.Причина в том, что мне нужно вести список текста по умолчанию также для новостных лент, уведомлений и т. Д., Поэтому я планирую сопоставить все эти данные в самой таблице поиска объектов.

1 Ответ

1 голос
/ 23 ноября 2010

Даниэль, удачи в этом проекте, это звучит сложно.

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

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