![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 01.08.2008
Сообщений: 383
|
![]()
Есть таблица заданий JOB (id_type (уникальный ключ), text, result, status) и таблица подзаданий SUBJOB (id_type (наследуется из JOB), id_podtype text, result). Каким образом можно сделать скользящую нумерацию в таблице SUBJOB для каждого ключа id_type?
Я предполагаю, что нужно рассматривать хранимые процедуры, но работала с ними 2 года назад. хотя бы по пунктам, что нужно сделать в процедуре.а особенно не понятно, каким образом автоинкрементное поле будет записыватся в бд через хп. на кнопке добавить запись будет хп типа: Код:
кто-нибудь знает как организовать генератор в sql server? Последний раз редактировалось kate158; 30.01.2012 в 11:14. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну, начнём с того, что Вы совершаете ОГРОМНЕЙШУЮ ошибку! Вы пытаетесь использовать уникальные ключи для каких-то других целей (нумерация чего-то там)! Это в корне неверно. Так поступать нельзя.
а если Вы удалите JOB с ID_TYPE = 1 - Вы что, будете изменять ключевые поля у оставшихся работ?!! во-вторых, Вам вот эта нумерация для чего нужна? Рискну предположить, что это порядок выполнения подзадач? Так заводите дополнительное поле, которое давайте ручками изменять пользователю (ну или скрывайте его от пользователя, заменив его на кнопочка "Перенести подзадание на одну строчку вверх" и "Перенести подзадание на одну строчку вниз" и кодом на этих кнопках изменяйте нумерацию (банальный обмен). При добавлении нового подзадания запросом получайте максимальное значение порядкового номера и плюсуйте к нему единичку. p.s. согласен с мнением Аватар p.p.s. всё сказаное мною выше - исключительно моё личное мнение (ИМХО). |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 01.08.2008
Сообщений: 383
|
![]()
SUBJOB.id_podtype должно быть генерируемым полем начиная с 1. действительно, удаление предполагается, и дырки тоже возможны.
либо я непонятно объяснила, либо чего-то сама не догоняю.=) ручки отменяются!!! погодите. объясню нормально: на форме есть грид с заданиями и грид с подзаданиями.на одно задание может быть много подзаданий. раньше поле SUBJOB.id_podtype у меня было первичный ключом и автоинкрементным. перемещаясь по нему, в мемо пользователь видел подзадания. так вот нумерация типа 101,102 и тд (на подзадания) показалась шлаком и пришла мысль сделать отдельную нумерацию на подзадания.кароче эта нумерация нужна для красоты и удобства пользователя.кто нибудь понял что я хочу? ![]() Последний раз редактировалось kate158; 30.01.2012 в 11:39. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
1. В каждой таблице должен быть уникальный автоинкоиментьный идентификатор
2. + Поле нумерации 3. Процедура на вставку в JOB - в процедуре найти SELECT-ом максимум поля нумерации и использовать это значение+1 при создании новой записи 4. Процедура на удаление из JOB - удалить запись и обновить значение поля нумерации в других записях, избавляясь таким образом от дырок 5. Процедура перемена местами двух соседних записей - соответствующее изменение поля нумерации в двух записях 5. Для другой таблицы почти аналогично с учетом того, что нумерация не сквозная, а в пределах группы записей 6. Реализуется или программно или с помощью хранимых процедур Собственно это самое вам Serge_Bliznykov посоветовал
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нумерация кругов | Lifefine | Общие вопросы Delphi | 13 | 05.02.2011 22:36 |
Нумерация страниц | Golovastik | Microsoft Office Word | 9 | 05.06.2010 20:09 |
нумерация строк | strannik | SQL, базы данных | 1 | 19.05.2010 09:09 |
Нумерация строк | Sparky | БД в Delphi | 6 | 16.02.2010 21:38 |
Нумерация | BВВ | Microsoft Office Word | 1 | 23.10.2008 05:07 |