Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по нумерации   Найти похожие ветки 

 
jen_bond   (2003-12-23 20:05) [0]

Мастера подскажите, а то что-то решение ни как не могу придумать.
Есть таблица в которой храниться информация о доп.соглашениях к договорам. Данная таблица завязана с таблицей

договоров через Foreign key(id_sdelka). Необходимо ввсети нумерация доп.соглашенй к каждому договору. Доп.соглашений

на любой из договоров может быть неограниченное кол-во.
Пример:
Договор №1:доп.соглашение №1,№2
Договор №2: доп.соглашение №1,№2,№3 и.тд.
Каким образом можно контролировать данную нумерацию?


 
Silver_   (2003-12-23 20:30) [1]

Дополнителиная таблица

Договор_ДопСоглашения
-id_sdelka
-LastSoglasNr

Когда добавляеш новое соглашение(лучше в OnBeforePost) заглядываеш в Договор_ДопСоглашения находиш соответствующий id_sdelka
и забераеш значение LastSoglasNr, незабывая отинкрементить; если не нашел - добавляеш соответствующий id_sdelka
и LastSoglasNr = 1
Сам так делаю пока ничего лучшего не придумал


 
Nikolay M.   (2003-12-23 20:43) [2]


> Каким образом можно контролировать данную нумерацию?

Триггер на вставку в таблице доп. соглашений + генератор.


 
Johnmen   (2003-12-23 23:22) [3]

>доп.соглашение №1,№2,№3

Имеют ли такие номера "жизненное" выражение ? Или это чистый суррогат ?
От ответа на этот вопрос зависит ответ на твой вопрос...


 
Nikolay M.   (2003-12-24 09:51) [4]


> Имеют ли такие номера "жизненное" выражение ? Или это чистый
> суррогат ?

Угу. Имхо, достаточно даты заключения доп. соглашения, а пользователю их показать, отсортированными по дате. И номер тогда возникает уже в процессе выборки доп. соглашений, следовательно, нет проблемы его генерации и хранения. А если одно из соглашений удалят? Будет дырявая нумерация?


 
Sergey13   (2003-12-24 10:07) [5]

2jen_bond © (23.12.03 20:05)
Программно проблема решается просто
select max(номер)+1 where id_sdelka=:id
при вставке.
Но должны быть прописаны и некие правила, например не разрешающие удалять дополнения, или перенумерация при удалении. Так же надо предусмотреть защиту при многопользовательском доступе.

2Nikolay M. © (24.12.03 09:51) [4]
> а пользователю их показать, отсортированными по дате
Иногда номер пункта - это часть документа и такой подход недопустим.


 
Nikolay M.   (2003-12-24 10:22) [6]


> Иногда номер пункта - это часть документа и такой подход
> недопустим.

Поэтому в [3], [4] были уточняющие вопросы, а не советы, что так именно и нужно делать.
Если номер таки нужен, тогда [2].



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.011 c
14-63312
Undert
2003-12-26 22:42
2004.01.20
PC Speaker


1-63167
din_tsk
2004-01-10 12:57
2004.01.20
Как сделать zoom в TImage


14-63379
ИдиотЪ
2003-12-29 09:26
2004.01.20
как бороться с ломателями ICQ ?


1-63068
Kelvin
2004-01-11 01:54
2004.01.20
Буфер


14-63362
pasha_golub
2003-12-29 12:26
2004.01.20
Ищу Settler





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский