pochechyev
Апрель 20, 2010 10:57:42
Приветствую.
Нубовский вопрос по SQL и его аналогу в Django ORM.
Есть две таблицы - Films, Serials. У каждой есть поле pub_date (дата публикации).
Нужно на главной странице выводить и фильмы и сериалы и они должны сортироваться по дате публикации.
Понимаю что почти элементарная задача, но сижу, туплю и не могу понять как это сделать. Ни чистым sql, ни через orm.
Если кто может подсказать буду крайне благодарен.
Спасибо.
slav0nic
Апрель 20, 2010 16:35:04
mike_girkin
Апрель 20, 2010 17:15:53
Подозреваю что у вас проблема со структурой БД, а не с запросом. Огласите описание сущностей.
pochechyev
Апрель 21, 2010 10:33:16
По поводу сущностей.
Есть Фильм и есть Сериал.
Для пользователя это одно и тоже (ему собственно пофигу что смотреть). Для базы это разные таблицы.
На страницу нужно вывести и Сериалы и Фильмы сортированные по дате.
Например:
сериал1 - добавлен 10.01.2010
фильм1 - добавлен 11.01.2010
фильм2 - 12.01.2010
……
сериал 100500 - 01.01.2004
pochechyev
Апрель 21, 2010 14:11:35
слишком уж много данных в базе. менять структуру нет возможности.
пагинация конечно есть :) поэтому список уже не канает.
mike_girkin
Апрель 21, 2010 15:13:18
pochechyev
слишком уж много данных в базе. менять структуру нет возможности.
пагинация конечно есть :) поэтому список уже не канает.
У вас точно проблема в структуре БД. Соответственно два варианта - либо вы меняете структуру БД на правильную, и больше не огребаете подобных проблем, либо вы продолжаете изобретать костыли. В качестве варианта костыля могу предложить вам какой-нибудь хитрый запрос с временной таблицей, pure SQL.
slav0nic
Апрель 21, 2010 15:24:53
или вьюшку написать в базе
pochechyev
Апрель 22, 2010 13:58:14
Сделал временную таблицу и кэширую этот запрос. Вроде работает.
По поводу изменения структуры базы - там не все так просто. Дело в том что Фильм и Сериал это разные сущности, т.е. сериал это не видео файл а их собрание и параметры у фильма и сериала очень даже разные, поэтому была создана такая структура.
Пока работает, дальше посмотрим. А доживем до рефакторинга будем думать о структуре.
Всем спасибо за советы.