![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
![]()
Я герой в Delphi, но здесь я полный новичек, поэтому задам возможно нубовские вопросы...
Речь пойдет об обеспечении уникальности идентификатора. Есть некая таблица, куда добавляются строки. Необходимо сделать так, чтобы каждая строка имела свой уникальный id. Причем id должен быть уникальным не только в пределах таблицы SQL, но и в пределах всего проекта на протяжении всего времени его существования. Я все сделал сам, не имея представления как это сделать правильно. В принципе все работает, но мне было бы интересно услышать мнение опытных людей о такой реализации - оцените адекватность идеи =) если не трудно опишите плюсы и минусы подходов. // первая идея 1. создаем отдельную таблицу CurID; 2. в ней 1 столбец "CurID"; 3. mysql_query("UPDATE CurID SET CurID=CurID+1 where 1;"); 4. столбец "CurID" имеет тип Integer и длину 10 символов (миллиарда, думаю, хватит) // вторая идея 1. в основной таблице создаем дополнительный столбец "CurID" 2. и дополнительный столбец "Row" (со значением "id"); (нужен только для определения именно той строки, в которой хранится значение CurID) 3. mysql_query("UPDATE MainTable SET CurID=CurID+1 where Row='id';"); Посоветуйте, как правильно сделать? Заранее спасибо =) |
![]() |
![]() |
![]() |
#2 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
![]()
eval, это значит, что ни у одной, из когда-либо добавленных записей, не повторялся id.
при этом будем учитывать, что записи могут удаляться из таблицы - т.е. мы не можем генерировать следующий id исходя из уже существующих |
![]() |
![]() |
![]() |
#4 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
![]()
"Тяжело в учении, легко в бою" - А.В. Суворов
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
![]()
да, кстати, когда-то начинал изучение MySQL, читал про это...
как я тогда понял из описания - что бы мы ни добавили в базу, такой столбец будет постоянно увеличиваться... потом я пробовал так сделать, но, видимо, что-то сделал не так, и это не работало как надо. с тех пор забил на эту опцию, думал что она не актуальна... |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,184
|
![]()
что-то подсказывает мне, что и в Делфях вы не герой... а так - выскочка. Ибо понятие автоинкремента и уникальных ключей есть во всех БД... и все "нормальные пацаны" этим пользуются широко
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 28.06.2010
Сообщений: 189
|
![]()
Как я понял человеку надо уникальный ключ в пределах всей бд.
AUTO_INCREMENT - это уникальный ключ в пределай таблицы. Тогда первый вариант более привлекателен, а как второй будет работать я не представляю. Поясните. И вообще зачем вдруг понадобились уникальные ID? |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 22.08.2012
Сообщений: 155
|
![]()
AUTO_INCREMENT почитайте в любом учебнике, не только по PHP(как можно быть героем если не знать даже что такое автоинкремент????)
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
![]()
ADSoft, а вы никогда не задумывались, что в Delphi можно работать не только с БД?
buriat, не, уникальный в пределах таблицы вполне устроит =) так что AUTO_INCREMENT мне подходит, им и воспользовался в итоге. а уникальные ID нужны для того, чтобы гарантировано отличать одну запись от другой. ну и так, пища для размышлений: можно ли быть о****ным летчиком, не зная что такое самолет? |
![]() |
![]() |
![]() |
#10 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уникальный идентификатор типа | brag | Общие вопросы C/C++ | 10 | 17.06.2012 20:33 |
Уникальный GUI интерфейс | |{ot | Общие вопросы C/C++ | 6 | 03.07.2011 18:25 |
Уникальный идентификатор | romets | Win Api | 9 | 03.02.2008 02:30 |