![]() |
|
Модераторы: LSD |
![]()
|
|
| SwordOfDeath |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Привет,
Хочу реализовать систему подписок(subscription). Но как-то не влазит мне в голову структура БД. У меня получается связь многие ко многим ко многим. Приведу пример:
Грубо говоря можешь подписаться (и отписаться) на что-угодно... Как это Реализовать...? Система подписок одна и та же... Не хотелось бы плодить кучу таблиц с подписками на разный контент. Ну и самое главное как потом получить список всего на что подписался и список всех подписчиков. Первая мысль это добавить в таблицу Подписок поле определяющее тип контента... но как тогда получать список всех подписчиков и пописок... Это сообщение отредактировал(а) SwordOfDeath - 29.9.2011, 04:49 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Таблица подписок.
Таблица подписчиков. Таблица связи подписчик-подписка. Это ж классика... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| SwordOfDeath |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Привет Akina,
Помню ты мне уже разок помогал здесь, респект и уважуха. Но если честно то я не понял о чем ты мне написал... то что ты мне написал это многие ко многим который разруливается через доп. таблицу с подписками. А у меня ситуация такая: Много пользователей могут иметь подписку на много постов, на много евентов.... итд... на много множеств! Чувствую себя как-то не очень, вродь простая задачка но нет у меня в голове понимания... =\ Это сообщение отредактировал(а) SwordOfDeath - 29.9.2011, 16:18 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
SwordOfDeath, ну и что? всё равно у тебя две сущности - "тот, кто может подписаться" и "то, на что можно подписаться".
Другое дело, что вторая из этих сущностей многолика. Вот как ты с ней будешь выворачиваться - это вопрос. Есть два принципиальных варианта. Первый - одна таблица, в которой лежат все атрибуты всех вариаций, и, соответственно, там есть все поля атрибутов, которые есть у хотя бы одного из подвидов. Второй - одна таблица, в которой лежат все вариации, но только те поля атрибутов, которые есть у всезх вариаций, плюс ссылки на частные таблицы дополнений в зависимости от типа и особенностей конкретной вариации. Но это не имеет никакого отношения к рассматриваемому вопросу - организации связи. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| SwordOfDeath |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Вот как раз об этом извороте и спрашивал... И для меня вопрос именно в этом... Как построить базу так чтобы с такой связью (Многие ко Множеству Множеств) можно было относительно дешево получать список подписчиков и подписок.
Вот пока я придумал что-то вроде поля в таблице подписок которое указывает на таблицу в которой находится подписываемый объект. Но не представляю как построить соответствующие запросы. это поле что-то вроде ссылки на таблицу но как это реализовать в MySQL, или в какой-то другой СУБД. Да так чтобы работало в обе стороны от подписываемого объекта до подписчиков и от подписчика ко всем подписываемым объектам. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
То есть вариант номер два. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| SwordOfDeath |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Да.
|
|||
|
||||
| SwordOfDeath |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Вот! Нашел в одной из ORM описание того что мне нужно
Strategy Pattern А как оно там заворачивается на базу данных хрен его знает =\ |
|||
|
||||
| tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: 1 Всего: 8 |
Схема такая:
Для поиска по полям услуги проще применить набор триггеров и полнотекстовый поиск. Это сообщение отредактировал(а) tishaishii - 29.10.2011, 14:05 |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |