Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация списка изменений в БД, формирование новостей для пользователей 
:(
    Опции темы
stmamont
Дата 14.4.2008, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 13.3.2004
Где: влг

Репутация: нет
Всего: 3



У меня есть несколько таблиц
Код

band:
  id:
  name:

album:
  id:
  band_id:
  name:

track:
  id:
  album_id:
  name:

user:
  id:
  nick:

user_blog_post:
  id:
  user_id:
  text:


хочу формировать список новостей для пользователей:
Цитата

Пользователь <nick> добавил пост <text>
В группу <band name> добавлен новый альбом <album name>
В Альбом <album name> добавлены треки:
<список треков>

в общем это похоже на реализацию новостей вконтакте.

вопрос следующий:

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

все мои идеи какие то как мне кажется несуразные :(


--------------------
user posted image
PM MAIL ICQ   Вверх
Deniz
Дата 14.4.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 7
Всего: 44



Ну так 3 обычных select'а с выборкой за период (надеюсь поле ДатаВремя есть в таблицах) и ограничением по кол-ву записей.
Не знаю какая СУБД, например для БЛОГа:
Код

select top 10 user.nick, user_blog_post.text 
from user 
  inner join user_blog_post on user.id=user_blog_post=user_id
where user_blog_post.DateTimeField >= (ТекущаяДата - 1 день)
order by user_blog_post.id desc

предпологаю что user_blog_post.id автоикремент.
Пример с периодом времени, если поля user_blog_post.DateTimeField нет, то секцию where нужно удалить, выведет 10 последних сообщений.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
stmamont
Дата 14.4.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 13.3.2004
Где: влг

Репутация: нет
Всего: 3



почему именно три запроса?
1. для изменений групп, альбомов, треков
2. второй для изменений пользователей и блоговских постов
3. ?


--------------------
user posted image
PM MAIL ICQ   Вверх
Deniz
Дата 14.4.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 7
Всего: 44



Цитата(stmamont @  14.4.2008,  16:23 Найти цитируемый пост)
почему именно три запроса?
1. для изменений групп, альбомов, треков
2. второй для изменений пользователей и блоговских постов
3. ? 

1. для изменений пользователей и блоговских постов
2. для изменений групп, альбомов
3. для изменений альбомов, треков
такое видение появилось после примера сообщения 
Цитата
Пользователь <nick> добавил пост <text>
В группу <band name> добавлен новый альбом <album name>
В Альбом <album name> добавлены треки:
<список треков>

Если идти от треков, то можно обойтись и двумя select'ами, c соответствующей обработкой.
Например, поправив новость для пользователя:

Пользователь <nick> добавил пост <text>
Новые треки:
  • Группа <band name>
    • Альбом <Albom_Name>
      • <Track_Name>
      • <Track_Name>
    • Альбом <Albom_Name>
      • <Track_Name>
      • <Track_Name>
  • <band name>
    • Альбом <Albom_Name>
      • <Track_Name>
      • <Track_Name>
может не очень красиво получилось  smile
Можно просто списком без группировки, но тогда: Трек - Альбом - Группа


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
stmamont
Дата 14.4.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 13.3.2004
Где: влг

Репутация: нет
Всего: 3



Цитата

    * Группа <band name>
          o Альбом <Albom_Name>
                + <Track_Name>
                + <Track_Name>
          o Альбом <Albom_Name>
                + <Track_Name>
                + <Track_Name>
    * <band name>
          o Альбом <Albom_Name>
                + <Track_Name>
                + <Track_Name>

в яблочко, думаю так было бы даже лучше;
 спасибо. я понял как делать этот вариант реализации.


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



--------------------
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0658 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.