|
|
|
| Делаем чат через базу...Как сделать чтоб в базу помещалось не более 20 сообщений???То-есть, если пользователи писали-писали на 1000 сообщений, то последние 980 удалялись, а другие оставались???
Покажите на схеме | |
|
|
|
|
|
|
|
для: nikolayers
(21.03.2010 в 19:34)
| | И зачем удалять, не проще ли не добавлять их? | |
|
|
|
|
|
|
|
для: sim5
(21.03.2010 в 19:57)
| | ну так и хочу, я просто пример навел, что из 1000 только 20 в базе... | |
|
|
|
|
|
|
|
для: nikolayers
(21.03.2010 в 19:59)
| | И в чем проблема? Если получить число сообщений имеющихся, и их 20, то более не производить запись базу. Тут удалением никаким и не пахнет. | |
|
|
|
|
|
|
|
для: sim5
(21.03.2010 в 20:16)
| | пахнет, это ж чат!!!!!!!!!!!!!!!если следовать вашим словал, то в чате после того как будет более 20 сообщений, начнеться 'мертвый период', то-есть новые сообщения не будут появлятся, а все время будут оставаться старые... | |
|
|
|
|
|
|
|
для: nikolayers
(21.03.2010 в 20:43)
| | Вот именно! А вы как вопрос задаете? Удалять надо не кучу записей, а начиная с N-записей, младшую по времени. | |
|
|
|
|
|
|
|
для: nikolayers
(21.03.2010 в 20:43)
| | вы попросили удалять последние 980, а не первые.
С позиций чата это абсурд. | |
|
|
|
|
|
|
|
для: Trianon
(22.03.2010 в 00:50)
| | всё просто - добавляем в таблицу новую запись, одновременно удаляя самую старую. | |
|
|
|
|
|
|
|
для: sasha1133
(22.03.2010 в 02:02)
| | а ккак это реализовать то??? | |
|
|
|
|
|
|
|
для: nikolayers
(22.03.2010 в 18:31)
| | Ну можно например так: сначала вставить 20 записей в таблицу, где заполнена только дата. Потом добавляем командой INSERT сообщение, затем выбираем запись с самой старой датой командой SELECT, узнаём её ID (лучше включать это поле в таблицу с параметром auto increment - чтобы однозначно можно было идентифицировать запись). Потом удаляем запись по ID. В принципе можно вместо ID использовать дату, но есть риск, что будут удаляться 2 или более сообщений. PS. В начале я предлагаю добавить 20 пустых записей, чтобы при каждом удалении не проверять, больше ли число записей чем 20 или нет - на 1 запрос меньше. | |
|
|
|