|
|
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
Всем привет...) У меня возник вопрос. Скорее теоретический... Есть БД и в ней таблицы с полями varchar,int... и т.д. Хочу проверять на корректность ввода в них данных. Например, хочу проверять, что бы пользователь не смог ввести в поле например ФИО цифры или слова с цифрами... Хочу проверять не ввел ли пользователь неправильную информацию в поле (бизнес правила). Так вот мне это где лучше реализовать в СУБД или в клиентском приложении? И еще лучше в хранимой процедуре проверки эти устраивать или в триггерах... а может в правилах??? подскажите мне в этом вопросе... заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 13:52 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
ROOTT , каким боком тут "проектирование БД"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 14:56 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
вот статья из книги BOL -- купи книгу и изучай ! Ограничения CHECK Столбец может содержать любое количество ограничений CHECK, а условие может включать несколько логических выражений, соединенных операторами AND и OR. При указании нескольких ограничений CHECK для столбца их проверка производится в порядке создания. Условие поиска должно возвращать логическое выражение и не может ссылаться на другую таблицу. Ограничение CHECK уровня столбца может ссылаться только на ограничиваемый столбец, а ограничение CHECK уровня таблицы — только на столбцы этой таблицы. Правила и ограничения CHECK выполняют одну и ту же функцию проверки данных при выполнении инструкций INSERT и UPDATE. Если для столбца или столбцов задано правило либо одно или несколько ограничений CHECK, применяются все ограничения. Ограничения CHECK нельзя определять для столбцов типов text, ntext или image. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 14:58 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
ROOTT, Ответ зависит от используемой СУБД, точнее от того, на сколько ней развиты механизмы проверки бизнес-правил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 15:13 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
Ответ зависит от архитектуры системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 15:21 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
ROOTTНапример, хочу проверять, что бы пользователь не смог ввести в поле например ФИО цифры или слова с цифрами...Вероятно вы не следите за новостями: там периодически появляется информация, что очередной ЗАГС отказал в регистрации имени новорожденного "R2D2" или тому подобных из Звездных Войн. Полагаю, что где-то могли и разрешить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 15:38 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
автор -- лови еще из книги BOL по SQL Server 2005 Правила — это средства обеспечения обратной совместимости, которые по функциональности напоминают ограничения CHECK. Применение ограничений CHECK является предпочтительным стандартным способом ограничения диапазона значений столбца. Кроме того, ограничения CHECK более лаконичны, чем правила. Со столбцом может быть связано только одно правило, а ограничений CHECK несколько. Ограничения CHECK указываются в инструкции CREATE TABLE, а правила создаются как отдельные объекты, которые потом связываются со столбцами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 15:59 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительОтвет зависит от архитектуры системы. Архитектура-Клиент-Сервер... Скорее всего тонкий клиент... (но тогда получается. что почти все надо делать на сервере... так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 16:16 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
baracsROOTT, Ответ зависит от используемой СУБД, точнее от того, на сколько ней развиты механизмы проверки бизнес-правил... Я использую субд sql server 2005 express) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 16:17 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
ROOTTТак вот мне это где лучше реализовать в СУБД или в клиентском приложении? И еще лучше в хранимой процедуре проверки эти устраивать или в триггерах... а может в правилах??? В СУБД и в клиентском приложении. В СУБД обеспечивается целостность данных, чтоб разные программы, которые программисты будут писать, не испортили эти данные. Где делать проверки - зависит от конкретной СУБД и от конкретных проверок - ведь, например, триггеры и хранимые процедуры есть не везде... В приложении проверки и подсказки делаются для удобства пользователя и повышения производительности его труда 9и для дополнительной страховки). Как в приложении делать проверки - зависит от конкретной платформы, языка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2010, 17:03 |
|
||
|
не знаю как реализовать лучше...
|
|||
|---|---|---|---|
|
#18+
alexeyvg +1 ROOTTЯ использую субд sql server 2005 express) Ну так и начните с теории Навскидку, можно посоветовать аккуратно использовать триггеры, т.е. делать в них только те проверки, которые нельзя реализовать в constraint-х и хранимых процедурах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2010, 11:35 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36648109&tid=1542688]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 541ms |

| 0 / 0 |
