|
|
|
| Доброго дня вот назрел такой вопрос
Имеется таблицы со структурой:
id - индефикатор
user - пользователь (числовое)
title - заголовок новости
textnew - текст новости
---
каждый день добавляется куча новостей, но требуется оставлять только 20 последних каждого пользователя, остальные необходимо удалять, вот что то никак не могу придумать как такое реализовать, выводить последнии 20 не вариант, т.к. база разрастается и начинает шевелится еле еле | |
|
|
|
|
|
|
|
для: ShadowXak
(23.06.2011 в 13:05)
| | ну лично я бы удалять не стал, а допустим отправлял в архив, но вам виднее
я бы сделал так
при вы борке новостей от определенного пользователя определял бы время добавления 20-той записи (естественно к верху ногами) и удалял бы все записи что старше этой. | |
|
|
|
|
|
|
|
для: Valick
(23.06.2011 в 13:14)
| | Архивирование не подходит т.к. просто тупо не нужны данные тексты вообще, а если класть в архив будит такая же кака с размером бд и тормазами.
---
в день пользователь может добавить 1 новость, а может 100 или 1000, а может месяц и более не добавлять. Но нужно именно оставлять не больше 20 последних добавленных материалов.
С датой не проканает как вы уже поняли из вышеописанного. | |
|
|
|
|
|
|
|
для: ShadowXak
(23.06.2011 в 13:50)
| | почему не прокатывает? очень даже прокатывает, а если поле даты TIMESTAMP то вообще шикарно прокатывает
а если класть в архив, то это будет самый настоящий архив в полном смысле слова, бд может и будет расти, но вот обращения к данной таблице будут редкими "по-праздникам" и на общей скорости работы это никак не отразиться, только малость дискового пространства кушать будет, но это совсем не страшно. | |
|
|
|
|
|
|
|
для: Valick
(23.06.2011 в 13:56)
| | >почему не прокатывает? очень даже прокатывает, а если поле даты TIMESTAMP то вообще шикарно прокатывает
---
поле даты нету и не предвидится его реализовывать
>а если класть в архив, то это будет самый настоящий архив в полном смысле слова, бд может и будет расти, но вот обращения к данной таблице будут редкими "по-праздникам" и на общей скорости работы это никак не отразиться, только малость дискового пространства кушать будет, но это совсем не страшно.
---
Информация которою будут выкладывать актуально только последнии 20 записи, остальное уже чушь подлежащая уничтожению (это я про новости зря пример привел потому как сие ввело вас в заблуждение) | |
|
|
|
|
|
|
|
для: Valick
(23.06.2011 в 13:14)
| | Нужно именно физическое удаление из базы всех предыдущих. | |
|
|
|
|
|
|
|
|
для: cheops
(23.06.2011 в 13:58)
| | спасибо за ссылку сейчас буду изучать и тестировать данный метод | |
|
|
|
|
|
|
|
для: cheops
(23.06.2011 в 13:58)
| | создал бд
CREATE TABLE `jos_test` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(150) NOT NULL,
`title` varchar(150) NOT NULL,
PRIMARY KEY (`id`)
) ;
INSERT INTO `jos_test` VALUES (1, 'test', 'test');
INSERT INTO `jos_test` VALUES (2, 'test2', 'test2');
INSERT INTO `jos_test` VALUES (3, 'test3', 'test3');
INSERT INTO `jos_test` VALUES (4, 'test4', 'test4');
INSERT INTO `jos_test` VALUES (5, 'test5', 'test5');
INSERT INTO `jos_test` VALUES (6, 'test6', 'test6');
INSERT INTO `jos_test` VALUES (7, 'test7', 'test7');
INSERT INTO `jos_test` VALUES (8, 'test8', 'test8');
INSERT INTO `jos_test` VALUES (9, 'test9', 'test9');
INSERT INTO `jos_test` VALUES (10, 'test10', 'test10');
|
собрал запрос который по ссылки, таблица создается но без строк и написано "используется"
create view testdels as select id as id_del from jos_test order by id desc limit 2,1
|
что я сделал не так? | |
|
|
|
|
|
|
|
для: ShadowXak
(23.06.2011 в 15:20)
| | А результат какой? Т.е. что работает не так? Следующий запрос что-нибудь возвращает
| |
|
|
|
|
|
|
|
|
для: ShadowXak
(23.06.2011 в 16:15)
| | Нет, а запрос SELECT, приведенный выше, что возвращает? Пустую таблицу, число? | |
|
|
|
|
|
|
|
для: cheops
(23.06.2011 в 17:49)
| | потрясающе я просто не делал запрос, сейчас все сделал и ура все работает, вот только как теперь удалить саму таблицу которая создалась она пишит что используется и при попытке удалить:
#1051 - Unknown table 'testdels'
| или просто в последующем просто записывать туда данные не создавая поновой таблицу, если так то каким образом? | |
|
|
|
|
|
|
|
для: ShadowXak
(23.06.2011 в 19:01)
| | Ну всяко про колдовал ничего не помогает | |
|
|
|