Текущий архив: 2003.05.19;
Скачать: CL | DM;
ВнизУникальное значение поля для таблицы detail Найти похожие ветки
← →
Vick (2003-04-25 17:24) [0]Доброго всем дня!
Может кто подскажет, возникла такая проблема: есть две таблицы - одна master, другая detail. В детальной таблице есть поле "Код товара", как обеспечить уникальность значения этого поля для каждой записи из таблицы-местера. Например, каждый документ должен содержать коды товаров, при это в этом док-те они не должны повторяться.
Заранее спасибо за ответ
← →
MOA (2003-04-25 18:01) [1]Объявите уникальный (составной) индекс по полям код-документа, код-товара и скажите, что уникальность - это ограничение.
Удачи!
← →
MOA (2003-04-25 18:06) [2]Вдогонку - наверное, эти поля - хороший кандидат в PRIMARY KEY в детайл-таблице.
← →
Vick (2003-04-25 18:18) [3]Не могу я сделать его PRIMARY KEY, т.к. на самом деле для всей таблицы это поле не уникально.
Ерунда заключается в том, что данные детальной таблицы из ADO перегоняются в ClientDataSet (из определенных соображений) и нужно локально проверять на уникальность уже в нем и если есть уже такой код товара, то не делать Post или как-то еще.
← →
MOA (2003-04-25 18:34) [4]>нужно локально проверять на уникальность уже в нем
А в самой-то базе, могут быть более 1 товара по 1 документу? Цитата из Вас:
>"Код товара", как обеспечить уникальность значения этого поля для каждой записи из таблицы-мастера
А если
>на самом деле для всей таблицы
я правидьно Вас понял? У Вас может быть 2 записи о товаре по 1 документу?
Удачи!
← →
Vick (2003-04-25 18:37) [5]В одном документе может быть много товаров, но код товара не должен повторяться.
← →
MOA (2003-04-25 18:46) [6]>В одном документе может быть много товаров, но код товара не должен повторяться.
я это и имел ввиду. О чём и речь. Чёткое ограничение уникальности - комбинация "код-документа"+"код-товара" - уникальна. Т.е. то, о чём уже говорилось. Уникальный индекс по этим полЯМ (двум, одновременно, НЕ два отдельных) + ОГРАНИЧЕНИЕ (constraint)по этому уникальному индексу (ещё раз - по 2-м полям сразу), и, действительно, этот индекс - кандидат в первичный ключ (составной ключ, 2 поля).
М.б., я что-то не понял. Поясните, плз.
Удачи!
← →
Vick (2003-04-25 18:49) [7]Это все ясно, и было бы отлично, в случае, если я работаю с АДО, но я это все пересылаю потом в CDS и до того как я вызову ApplyUpdate я не смогу узнать, что я ввела повторяющийся код
← →
Serginio (2003-04-25 18:51) [8]Согласен с MOA. А чем не нравится TList или TStringList, или другие отсортированные списки, при записи заносишь значения а после ввода проверяешь есть ли такое значение в списке???
← →
Vick (2003-04-25 18:53) [9]Так и делаю, только возник вопрос на какое событие вешать эту операцию и какую операцию делать, если есть уже такое значение.
← →
MOA (2003-04-25 18:55) [10]IMHO, тогда только верхними лапками. Т.е. в клиентском приложениии придётся писать код проверки. Но всё равно, на сервере указанное ограничение объявить нужно - целостность базы не должна нарушаться - но это уже не о том.
Удачи!
Страницы: 1 вся ветка
Текущий архив: 2003.05.19;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.007 c