таблица с бесконечным обновлением?
От: Nevidim  
Дата: 18.09.07 10:48
Оценка:
Доброго Времени!

Мне нужно сделать в базе данных таблицу, которая бы обновлялась
циклически бесконечно. Например,максимально 10 записей,
записали десятую, далее пишем в первую и т.д.
Как я понял этот способ быстрее, чем удалять старые, вставляя новые.
Но.. Далее эти записи хотелось бы отсортировать в порядке поступления,
естественно. Могу сделать ID и все было бы хорошо, но когда он
обнулиться достигнув максимального значения вся моя сортировка
по возрастанию даст фигу. Подумал писать метку времени
__int64 (FILETIME в Windows api) но записанные значения в моем движке
SQLite не видны в MSAccess например.
Как бы правильно решить эту задачу? Был бы крайне признателен.
Re: таблица с бесконечным обновлением?
От: MasterZiv СССР  
Дата: 18.09.07 13:49
Оценка:
Nevidim пишет:
> Мне нужно сделать в базе данных таблицу, которая бы обновлялась
> циклически бесконечно. Например,максимально 10 записей,
> записали десятую, далее пишем в первую и т.д.

Это очень хорошо сделано в RoundRobinDB. Там это реализовано
внутри, такой вот механизм.

> Как я понял этот способ быстрее, чем удалять старые, вставляя новые.


Не факт, зависит от СУБД.

> Но.. Далее эти записи хотелось бы отсортировать в порядке поступления,

> естественно. Могу сделать ID и все было бы хорошо, но когда он
> обнулиться достигнув максимального значения вся моя сортировка
> по возрастанию даст фигу. Подумал писать метку времени
> Как бы правильно решить эту задачу?

Применять правильные типы данных для хранения даты и времени.
Posted via RSDN NNTP Server 2.1 beta
Re: таблица с бесконечным обновлением?
От: Mr.Cat  
Дата: 18.09.07 17:05
Оценка:
Я бы сделал триггер AFTER INSERT или INSTEAD OF INSERT (или как они там в SQLite зовутся?), который проставлял бы новым строкам ID или временные метки и удалял все строки, кроме последних 10.

Кстати, а чем не нравится ID? Какая максимальная разрядность целого в SQLite? К тому же даже если данные будут добавляться со скоростью 1 строка в секунду, на переполнение 32-разрядного целого потребуется 136 лет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.