|
|
|
constraint
|
|||
|---|---|---|---|
|
#18+
Бобрый день. Разесните, для чего и где используеться ключевое слово constraint. Если не тяжело приведите пожалуста пару простеньких примеров использования... Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2003, 09:34 |
|
||
|
constraint
|
|||
|---|---|---|---|
|
#18+
constraint - дополнительное условие, накладываемое на значения одной ил или нескольких колонок таблицы Пример create table t1 ( id integer not null primary key, art integer not null, name1 varchar(80) not null, constraint c_uart_name unique (art, name1)) Замечания: 1. Читайте доку - там подробнее 2. Старайтесь избегать использования. Проверка вводимых данных должна проводиться на стороне клиента. Необходимость в constraint может возникнуть только при работе триггеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2003, 10:13 |
|
||
|
constraint
|
|||
|---|---|---|---|
|
#18+
г-н Седов если вы не слишком компетентны в вопросах построения базы данных, прошу не давать советов и не вводить людей в заблуждение. Проверка ДОЛЖНА быть на сервере, по крайней мере в большенстве случаев. Клиент может проверять, может нет, это личные предпочтения каждого. Целостность базы должна быть гарантированны базой. И констрейны это наиболее быстрый и надежный гарант целостности БД. Приоритеты в использовании механизмов контроля целостности следующие: 1) Индексы и констрейны 2) Триггеры 3) Хранимые процедуры 4) Клиент вроде ничего не пропустил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 03:20 |
|
||
|
constraint
|
|||
|---|---|---|---|
|
#18+
2 StarWind Так. 1. Компетентность на форуме выяснить не представляется возможным. 2. ДОЛЖНА быть на сервере Вопросы: Кому должна ? Почему должна ? Я могу ответить почему не должна: а) Если сервер четытырёхксеноновый ящик со сказёвым Рэйдом с меня ростом - то пусть будет на сервере. Но обычно рабочая станция это трехсотый целерон, а сервер - пятисотый третий пень. Повесьте на него сылочную целостность и констрейны и он при обработке более менее объёмных таблиц подохнет. б) нельзя сейчас(когда требования клиента постоянно меняются и по ходу выполненя заказа и после выполненя) мыслить категориями теории РБД. Знать её несомненно нужно. Но я сейчас переделываю работу(чужую), которая была сдана заказчику 5 месяцев назад. Выполнена технически грамотно, Структура базы чуть ли не 3-я НФ. Просто требования заказчика изменились. 3. Целостность базы должна быть гарантированны базой - не бывает такого. В Аксапте, В САП/Р3 можно нарушить целостность - а это эталоны. Говорить об этом хорошо, когда есть 5 таблиц. А если полсотни денормализованных - слабо такие констрейны написать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 10:01 |
|
||
|
constraint
|
|||
|---|---|---|---|
|
#18+
полсотни, смотря что в них, если это как вы говорите слабосвязные таблицы, то нужн менять структуру базы, если меняются требования заказчика то нужна гибкая структура. И большие таблицы это сколько? И как влияет скорость выборки от наличия констрейнов? Только косвенно, обычно ускоряется, потому как работает по индексам. Если необходимо отключить работу по индексу, так это тоже делается буквально в двасимвола в запросе. Тормозится ТОЛЬКО вставка. Но сколько за раз записей вставляется, обычно с десяток не более, вставляется ручками, так что юзер не видит разницы между 10 мили секундами и 100 милисекундами. Причем я говорю основываясь на таблицах размером в 300 000 записей и эксперементирую я на рабочей машине, P4 пробовал и на P3 все работает и уж что-что а вставка точно. Причем в вставка порядка 500 записей занимает на глаз секунды 2-3. Когда нужно вливать объемы измеряемые десятками тысяч записей то отключаются индексы производится вливка и включается Кстате говоря, тормозят и достаточно серьезно при вставке и индексы или вы и их не используете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 10:13 |
|
||
|
constraint
|
|||
|---|---|---|---|
|
#18+
2 StarWind. Речь идёт конечно о всатвках. Я всё понимаю, и в Ваших словах несомненно правда есть. Но, по моим наблюдениям усилия затраченные на создание структур поддерживающих целостность не окупаются. Особенно в силу некоторых особенностей оптимизатора Interbase (одна принудительная корелляция вложенных запросов чего стоит). Индексы используем, но с целью оптимизировать выборку тормозян при вставке ессно именно они. Как может быть гибкой хотя бы вторая нормальная форма ? Ситуация: Больница. Врачи работают в отделениях. Один врач в нескольких отделениях. В одном отделении несколько врачей. Каждое отделение ведёт приём в своё время. Врач, работающий в отделении ведёт приём в своё время, но не выходя за время работы отделения. Отделений около 20. Врачей - около 100. Пациент хочет записаться к врачу на определённый день и время. На одно и то-же временя можно записать не более трёх пациентов. Как Вам задачка (она вполне реальная, сделана и работает. Серваком на 20-30 рабочих мест стоит PIII - 800 со 128 м на борту, за которым ещё и кто-то работает. Про такие мелочи, как сбор маркетинговой статистики и выписку бланков с сохранением их базу в формализованном виде не говорю подробнее) ? Что там про целостность базы и констрейны ? За один день работы в таблице "график работы врачей" накапливается до 2 тысяч записей. Это потому, что она денормализованная. Так было бы раз в 10 поболе. С тех пор, как я прошлым летом уволился, сервер никто не обслуживает. За это время было всего три проблемы. Цитата: 500 записей занимает на глаз секунды 2-3. А вы у 20 клиентов запустите и посмотрите ещё раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 11:00 |
|
||
|
constraint
|
|||
|---|---|---|---|
|
#18+
Когда задачу начнут обслуживать с десяток человек по очереди будет написано несколько клиентов, тогда и посмотрим :) а задача, не буду говорить что она проста, но сложностей я в ней особо не наблюдаю. Бардак будет когда начнут цеплять левые клиенты По поводу цитаты, 20 человек не наберу, но с десяток будет... одновременно на этих объемах + сложные отчеты с промежуточными таблицами... я не ратую за полную нормализацию базы, речь идет о констрейнах и то что контроль целостности на клиенте.... ну не правельно это если не сказать хуже... причем не только мое это мнение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 11:18 |
|
||
|
constraint
|
|||
|---|---|---|---|
|
#18+
Да, посторонние клиенты это голяк. Но Цитата: я не ратую за полную нормализацию базы, речь идет о констрейнах А их не хватит. Нужны триггеры с селектами, лезущие по трём-четырём таблицам. Вот они-то базу и погасят. Гарантировано. Там народ купил программу для лаборатории. Сделанную "по канонам". Будет 5-10 машин. Она ещё не работает, а двуглавый сервак на ксенонах уже стоит, пылится. Разработчик сказал, что иначе не потянет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 11:56 |
|
||
|
constraint
|
|||
|---|---|---|---|
|
#18+
и что? может задача такая, может руки кривы но не думаю что будет проще поселектить вместо триггеров с клиента и еще подгрузить тем самым сеть.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2003, 11:58 |
|
||
|
|

start [/forum/topic.php?fid=40&gotonew=1&tid=1580654]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
131ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 417ms |

| 0 / 0 |
