Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / не знаю как реализовать лучше... / 11 сообщений из 11, страница 1 из 1
25.05.2010, 13:52
    #36647518
ROOTT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
Всем привет...)
У меня возник вопрос. Скорее теоретический... Есть БД и в ней таблицы с полями varchar,int... и т.д.
Хочу проверять на корректность ввода в них данных. Например, хочу проверять, что бы пользователь не смог ввести в поле например ФИО цифры или слова с цифрами... Хочу проверять не ввел ли пользователь неправильную информацию в поле (бизнес правила). Так вот мне это где лучше реализовать в СУБД или в клиентском приложении? И еще лучше в хранимой процедуре проверки эти устраивать или в триггерах... а может в правилах??? подскажите мне в этом вопросе...
заранее спасибо.
...
Рейтинг: 0 / 0
25.05.2010, 14:56
    #36647774
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
ROOTT , каким боком тут "проектирование БД"?
...
Рейтинг: 0 / 0
25.05.2010, 14:58
    #36647779
nosov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
вот статья из книги BOL -- купи книгу и изучай !

Ограничения CHECK

Столбец может содержать любое количество ограничений CHECK, а условие может включать несколько логических выражений, соединенных операторами AND и OR. При указании нескольких ограничений CHECK для столбца их проверка производится в порядке создания.
Условие поиска должно возвращать логическое выражение и не может ссылаться на другую таблицу.
Ограничение CHECK уровня столбца может ссылаться только на ограничиваемый столбец, а ограничение CHECK уровня таблицы — только на столбцы этой таблицы.
Правила и ограничения CHECK выполняют одну и ту же функцию проверки данных при выполнении инструкций INSERT и UPDATE.
Если для столбца или столбцов задано правило либо одно или несколько ограничений CHECK, применяются все ограничения.
Ограничения CHECK нельзя определять для столбцов типов text, ntext или image.
...
Рейтинг: 0 / 0
25.05.2010, 15:13
    #36647833
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
ROOTT,

Ответ зависит от используемой СУБД, точнее от того, на сколько ней развиты механизмы проверки бизнес-правил...
...
Рейтинг: 0 / 0
25.05.2010, 15:21
    #36647857
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
Ответ зависит от архитектуры системы.
...
Рейтинг: 0 / 0
25.05.2010, 15:38
    #36647916
arni
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
ROOTTНапример, хочу проверять, что бы пользователь не смог ввести в поле например ФИО цифры или слова с цифрами...Вероятно вы не следите за новостями: там периодически появляется информация, что очередной ЗАГС отказал в регистрации имени новорожденного "R2D2" или тому подобных из Звездных Войн. Полагаю, что где-то могли и разрешить.
...
Рейтинг: 0 / 0
25.05.2010, 15:59
    #36648006
nosov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
автор -- лови еще из книги BOL по SQL Server 2005

Правила — это средства обеспечения обратной совместимости, которые по функциональности напоминают ограничения CHECK. Применение ограничений CHECK является предпочтительным стандартным способом ограничения диапазона значений столбца. Кроме того, ограничения CHECK более лаконичны, чем правила. Со столбцом может быть связано только одно правило, а ограничений CHECK несколько. Ограничения CHECK указываются в инструкции CREATE TABLE, а правила создаются как отдельные объекты, которые потом связываются со столбцами
...
Рейтинг: 0 / 0
25.05.2010, 16:16
    #36648103
ROOTT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
Программист-ЛюбительОтвет зависит от архитектуры системы.

Архитектура-Клиент-Сервер... Скорее всего тонкий клиент... (но тогда получается. что почти все надо делать на сервере... так?
...
Рейтинг: 0 / 0
25.05.2010, 16:17
    #36648109
ROOTT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
baracsROOTT,

Ответ зависит от используемой СУБД, точнее от того, на сколько ней развиты механизмы проверки бизнес-правил...

Я использую субд sql server 2005 express)
...
Рейтинг: 0 / 0
25.05.2010, 17:03
    #36648313
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
ROOTTТак вот мне это где лучше реализовать в СУБД или в клиентском приложении? И еще лучше в хранимой процедуре проверки эти устраивать или в триггерах... а может в правилах??? В СУБД и в клиентском приложении.

В СУБД обеспечивается целостность данных, чтоб разные программы, которые программисты будут писать, не испортили эти данные. Где делать проверки - зависит от конкретной СУБД и от конкретных проверок - ведь, например, триггеры и хранимые процедуры есть не везде...

В приложении проверки и подсказки делаются для удобства пользователя и повышения производительности его труда 9и для дополнительной страховки). Как в приложении делать проверки - зависит от конкретной платформы, языка.
...
Рейтинг: 0 / 0
27.05.2010, 11:35
    #36652296
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не знаю как реализовать лучше...
alexeyvg
+1

ROOTTЯ использую субд sql server 2005 express) Ну так и начните с теории
Навскидку, можно посоветовать аккуратно использовать триггеры, т.е. делать в них только те проверки, которые нельзя реализовать в constraint-х и хранимых процедурах.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / не знаю как реализовать лучше... / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]