![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
Привет.
Ситуация: Предположим есть сервис с объявлениями. Т.е. человек логиниться, заполняет форму и оставляет объявление на портале. Это объявление сперва проходит модерацию, затем только отображается на портале. Через какое-то время пользователь редактирует объявление, которое перед публикацией опять должно пройти модерацию и так может продолжаться до бесконечности с любым объявлением, пользователь его может редактировать неограниченное кол-во раз. Но при этом оно сразу не отображается на портале, а будет показано только после прохождения модерации. В этом и загвоздка, что когда юзер подал объявление и оно прошло модерацию, на портале всегда нужно показывать объявление, которое было последним прошедшим модерацию. Т.е. если юзер его отредактировал, оно все равно должно показываться, но должен показываться предыдущий промодерированный вариант. Вопрос в этом и заключается, как лучше всего хранить в БД объявление и версию, которую нужно отобрадать напортале и ту версию, которая ждет модерацию? ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Две (три, более) записи в БД. Все - с одним и тем же номером объявления. Версия, не прошедшая модерацию, имеет NULL в поле даты модерации. Показывается версия, имеющая максимальную дату модерации среди всех с таким номером.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
Ну это впринципе стандартный подход, который крутился у меня в головею. Думал может другой вариант какой-нибудь есть. Этот кажется мне каким-то простым.
![]() Но спасибо в любом случае. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Мне не нравится. ![]() Тут ведь нагурзка по чтению многократ превышает нагрузку по модификации. Я бы организовал обособленную очередь модерации. И модераторам проще будет выбрать не отмодерированные сообщения и дополнительная нагрузка по вычислению актуальной версии при отображении уходит, на витрине всегда актуальная отмодерированная версия ибо. Логика постановки сообщения в очередь лишь усложняется. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Ну сколько там может быть последовательных копий объявления? десяток? два? к тому же не факт, что их все необходимо хранить, что нужна вся история правки от рождения до смерти и после... так что при наличии индекса (НомерОбъявления - ДатаМодерации) выборка будет ненамного накладнее, если кроме установленных дат там будут ещё и NULL-даты. По-моему, очередь модерации, с переносом зааппрувленных объявлений в публикации - неоправданное усложнение. А ведь ещё есть вариант редактирования незааппрувленного сообщения.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Akina, выбери из своей структуры все сообещния, подлежащие модерации.
Зависит от того, на сколько эта накладность умножается. Если ружье стреляет раз в год, то триста ружей будут стрелять почти каждый день. Это сообщение отредактировал(а) Zloxa - 18.3.2013, 15:22 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Если ВСЕ - то индекс по дате аппрува и select * from adverts where dtApproved is null ... а что? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Маська использует индекс по is null? Оракл, в общем случае - нет. Добавлено через 2 минуты и 20 секунд У нас есть 100500 сообщений, из них не модерировано 100. Индекс по 100400 значениям нам не нужен -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
а щтойта? верна ли догадка что выражение (a<=>b) эквивалентно (a=b or a is null and b is null)? Это сообщение отредактировал(а) Zloxa - 18.3.2013, 19:00 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
ребята, вы отдалились
![]() а что делать со связанными таблицами? тоже все дублировать? )) Это сообщение отредактировал(а) Samotnik - 18.3.2013, 23:19 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Какими связанными таблицами? почему - дублировать? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
ну объявление хранится ни в одной таблице, а в трех. Основная часть инфы конечно же в одной, но есть некоторая инфа, например адресс, город,Ю которые хранятся в друних таблицах по связям
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
и что?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
ну как что
![]() Есть объявление, которое в случае редактирование нужно не затирать старые, а создавать в бд запись новые записи с тем же номером объявления. Это твоя мысль в первом пеосте была. Теперь я уточняю, что объявление находится не в одной таблице, а в нескольких, т.е. есть свзяанная инфа в других таблицах. ТУ инфу тоже может пользователь отредактировать может. Получается что там тоже нужно хранить две и более записи? |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
ОБЯЗАТЕЛЬНО. Даже если пользователь НЕ редактировал сведения. хранящиеся в связанной таблице. Добавлено через 51 секунду С другой стороны - а какой смысл был дробить таблицу, если это фактическая связь один-к-одному? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Есть подозрение, что адрес будет один на несколько объявлений. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
В точку! Это еще один большой вопрос, который нужно бкдет завтра решить. ![]() Но это уже вопрос программирования, а не структуры БД. Тут шлавное именно с логикой БД не ошибиться, что бы потом все не переделывать |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Мне не кажется разумным в этом случае устраивать связь один-ко-много... Вот как раз нет. Как только организуется (утверждается тобой в структуре) связь один-ко-много, надо принимать политическое решение - либо адреса в этом случае не модерируются, либо они модерируются независимо от объявления (при этом изменение в части "адрес" ставит на модерирование не только изменённый адрес, но и все объявления, где он используется). Это первое. И второе - перенос решения этого вопроса в программирование приводит к разрыву логики на куски, один из которых остаётся на уровне СУБД, второй выносится на клиента. Добавлено через 2 минуты Другое дело, что для хранения ШАБЛОНА адреса можно использовать отдельную таблицу, и помещать подготовленный юзером адрес в объявление нажатием одной кнопки. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |