![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
![]()
Джентельмены, прошу у вас совета. Предположим создаю некую запись в файле. При этом хочу этой записи присвоить некий уникальный строковый идентификатор, что бы он потом не мог повториться у иных записей при последующим их удалении, добавлении и пр. По идее можно было бы привязать это дело к дате до миллисекунд, но ведь все таки есть вероятность, того, что будет повтор (проблемы с часами на компе или если записи создаются автоматом, а значит очень быстро, то несколько записей создается пракически одномоментно). Можно так же просто присваивать порядковый номер, но тогда, удалив запись, получаем "пробел". Т.е. для создания новой записи надо отсканировать все записи, найдя свободный номер. Какие есть предложения?
Спасибо. |
![]() |
![]() |
![]() |
#2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
можно хранить два числа: самый максимальный и последний удалённый, если ещё нет удалённого, то -1. При создании новой записи, если номер последнего удалённого не равен -1, то сохраняем запись туда, иначе сохраняем в следующий за максимальным. Но етсь проблема: если удалить два раза подряд, то номер первого удалённого потеряется, но и это тоже можно решить, например, сохраняя номера удалённых в какой-нибудь массив.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
![]()
Спасибо, это мысль! Надо подумать.
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Именно так и нужно, а сканировать ничего не нужно, нужно просто хранить, например, в заголовке, текущее максимальное число, как, например это делается в СУБД. Это всё равно будет уникальная строка, нужно только заранее определиться с разрядностью числа и всё.
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
![]() Цитата:
Я думаю, что достсаточно во-первых хранить максимально свободный номер и в отдельном файле номера удаленных записей, подгружая для новых в первую очередь из этого файла. Пожалуй сделаю так, попробую. |
|
![]() |
![]() |
![]() |
#6 | ||
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Ну и что???
Цитата:
Цитата:
![]() |
||
![]() |
![]() |
![]() |
#7 | ||
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#8 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
![]()
"но в Вашем случае (Вы ведь, строго говоря, только складывать такие числа собираетесь) вполне можно обойтись просто десятичной (или двоичной), "текстовой" записью числа и добавлять к ней текстовые же единички, с учетом переноса и т.п., разумеется"
Логично. Благодарю! |
![]() |
![]() |
![]() |
#10 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как делают уникальный идентификатор строки в БД? | sergey113 | Помощь студентам | 3 | 05.08.2008 17:48 |