Форум: "Базы";
Текущий архив: 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.014 c