powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужно ли связи в таблицах в sql
25 сообщений из 131, страница 4 из 6
Нужно ли связи в таблицах в sql
    #39504929
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANALSVзы: Тот, кто настаивает на использовании FOREIGN KEY просто мало работал с реальными данными. :)
14 лет - это мало? Когда ждать просветления? :)

Ещё лет 10-20 наверное...
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39504932
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVзы: Никто так толком и не объяснил, для чего ему констрайнты ? От какого рода угроз они спасают ?


Констрейнты вообще спасают от нарушения целостности данных.
Констрейнты FK -- от нарушения ссылочной целостности данных.
Констрейнты CHECK -- от нарушения доменной целостности данных
Констрейнты UNIQUE, PK -- от нарушения уникальности ключа.

Да, если тебе насрать на твои данные, констрейнты можно не использовать...
80% WEB проектов так и делают.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39504933
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DirksDRLSVНиодна тиражная ERP система не использует ФК.
Почему-то, никто не оспаривает это утверждение. Неужели это правда?

Так что с бредом-то спорить...
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39504937
s_ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivDirksDRпропущено...

Почему-то, никто не оспаривает это утверждение. Неужели это правда?

Так что с бредом-то спорить...
А какие используют?
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39504973
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivКонстрейнты вообще спасают от нарушения целостности данных.
Констрейнты FK -- от нарушения ссылочной целостности данных.
Констрейнты CHECK -- от нарушения доменной целостности данных
Констрейнты UNIQUE, PK -- от нарушения уникальности ключа.ок. Почему может наступить нарушение целостности ? Это когда ручками туда залесть ? Кто и зачем ? :)

Как наложить констрайнту, если в поле может находится ссылка на неск. типов документов (связка: тип док./ключ) ?

зы: обсуждаем только ссылочную ц-сть. Уникальность ключа использую постоянно, исличо.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505005
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVПочему может наступить нарушение целостности ?
Ссылочная целостность - Причины нарушений
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505007
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVКак наложить констрайнту, если в поле может находится ссылка на неск. типов документов (связка: тип док./ключ) ?
Хм. Просто ключ.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505016
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANALSVПочему может наступить нарушение целостности ?
Ссылочная целостность - Причины нарушений Не надо давать эти баянные ссылки. Я хочу, чтоб человек ответил своими словами. :)
В хорошо спроектированной системе не будет срабатывания СЦ. Удаление записей с СЦ вообще должно быть недоступно в Б/Л.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505038
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV,

1. Можно генерировать триггеры (а так хреново, что нельзя сослаться на view)
2. Обычно с одной БД работают разные "системы", потому нельзя положиться на "хорошее проектирование"
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505042
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVВ хорошо спроектированной системе...
Да, да. Без технического долга и т.п. :)

Ещё скажите Вы ни разу рефакторингом не занимались, тогда Вы мало ещё работали с системами :)
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505043
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVУдаление записей с СЦ вообще должно быть недоступно в Б/Л.
С чего это вдруг?
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505047
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosОбычно с одной БД работают разные "системы", потому нельзя положиться на "хорошее проектирование"
+100500

Изначально стоит задача быстро выйти на рынок, потом обрасти различными "системами" ради конкурентного преимущества.
И очень трудно доказывать бизнесу, что надо бы побольше времени на проектирование закладывать.

...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505048
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

а с того, что как раз при проектировании не смогли сделать все варианты, а сделали:
удаление сложно - потому не будем делать!!!
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505051
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

а с того, что как раз при проектировании не смогли сделать все варианты, а сделали:
удаление сложно - потому не будем делать!!!
То есть импортировать к примеру пользователь данные может, а удалить нет? Удобно, чё :)
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505059
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRosskyANA,

а с того, что как раз при проектировании не смогли сделать все варианты, а сделали:
удаление сложно - потому не будем делать!!!
То есть импортировать к примеру пользователь данные может, а удалить нет? Удобно, чё :)
да просто все зависит от "системы"
1. "система" фиксирует не большой поток данных (ручной ввод че нить или еще какой поток) (тут можно и не удалить считают)
2. "система" фонтанирует данными (какие то алгоритмы генерируют большие потоки данных - например, версии расписаний работы завода, аэропорта,..) (тут уж не удалить никак не получится)
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505088
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANALSVУдаление записей с СЦ вообще должно быть недоступно в Б/Л.
С чего это вдруг?Неправильно выразился. ... Речь про срабатывание защиты с СЦ.

Не должно быть штатной возможности удалить запись, на кот. есть ссылка.
Причем именно Б/Л-ссылка, т.е. в т.ч. и те случаи, кот. невозможно накрыть с помощью СЦ.
Именно поэтому СЦ малоценна, т.к. есть многочисленные случаи, когда ее нельзя применить.
СЦ - полумера.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505115
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosда просто все зависит от "системы"
Именно. Вот только камрад LSV этого почему-то не понимает, хотя намекает на то, что имеет достаточно большой опыт работы с данными.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505118
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНе должно быть штатной возможности удалить запись, на кот. есть ссылка.
Это почему вдруг?

К примеру нашей системой пользуются более 20000 некоммерческих организаций.
И все они загружают контакты своих мемберов. И с этими контактами в процессе жизни организации связаны какие-то данные.
Но достаточно большая часть мемберов - это люди пожилого возраста.
И вот не стало контакта. Почему не должно быть штатной возможности удалить запись о нём из системы?
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505144
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANALSVНе должно быть штатной возможности удалить запись, на кот. есть ссылка.
Это почему вдруг?

К примеру нашей системой пользуются более 20000 некоммерческих организаций.
И все они загружают контакты своих мемберов. И с этими контактами в процессе жизни организации связаны какие-то данные.
Но достаточно большая часть мемберов - это люди пожилого возраста.
И вот не стало контакта. Почему не должно быть штатной возможности удалить запись о нём из системы?

Эмм... А что будете делать, когда вам позвонит пользователь в слезах, и попросить как то восстановить результат отработки штатного механизма удаления, который был по ошибке применен не к тому контакту?
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505171
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buven,

это сооовсем другой вопрос, никакого отношения к удалению не имеющий
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505198
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buvenskyANAпропущено...

Это почему вдруг?

К примеру нашей системой пользуются более 20000 некоммерческих организаций.
И все они загружают контакты своих мемберов. И с этими контактами в процессе жизни организации связаны какие-то данные.
Но достаточно большая часть мемберов - это люди пожилого возраста.
И вот не стало контакта. Почему не должно быть штатной возможности удалить запись о нём из системы?

Эмм... А что будете делать, когда вам позвонит пользователь в слезах, и попросить как то восстановить результат отработки штатного механизма удаления, который был по ошибке применен не к тому контакту?
Вот ни разу не звонили по этому поводу :)

Хотя когда вот писали ERP, то был такой прецедент, после чего у записей появился признак активности и они на самом деле не удалялись, а делались не активными.
Но это уже другая компания, другая система, другие данные, другие требования.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505199
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И это кстати пример того, что не надо опыт разработки вашей системы переносить на все остальные.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505317
kaldorey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бывают случаи, когда у тебя есть небольшое окно, в которое надо успеть протащить данные из оперативной системы в хранилище, некогда разбираться сейчас, загрузил ли ты товары к этим покупкам или нет из мдм. А вот потом после трансформаций/проверок в новые ухоженные объекты можно разложить уже с констрейнтами.
А бывает, пытаются создать уполномоченного к еще не созданному юрлицу. Оно, конечно, всегда создается раньше, но в этот раз разработчики какого-нибудь очередного микросервиса в один момент положили узел шины, и понеслось. Я к тому, что в БД нельзя доверять никому, даже своему собственному надприложению с бизнес-логикой. А поменяют там что, да ошибку допустят - лучше не дать испоганить данные, чем потом разгребать, особенно если это повлечет штрафы.
Ну и напоследок - бывает так, что тебе приходится делать что-то неествественное с данными в своей базе совсем не по своей вине. Очередное приложение очень важно для бизнеса, но вот не предусмотрели они, что у тебя может не быть еще в базе значения, например, из налоговой, ну не прислали, хотя доки уже тут, клиенты негодуют. Давай ты сделай быренько, чтобы им просто нужные значения вернулись, потом удалишь. АПИ и скрипты на все случаи не запасешься в этом меняющемся мире, поэтому вполне возможно что даже ты, о мудрый, не всегда правильно подчистишь или, наоборот, добавишь, а вдруг кто новенький пришел, найди потом, где напортил.

Отказываюсь констрейнты, в том числе СЦ, делать только при уважительных причинах. Но заполнять проверками типа ключевания инн, имхо не стоит, это уже к бизнес-логике больше.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505432
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANALSVНе должно быть штатной возможности удалить запись, на кот. есть ссылка.
Это почему вдруг?

К примеру нашей системой пользуются более 20000 некоммерческих организаций.
И все они загружают контакты своих мемберов. И с этими контактами в процессе жизни организации связаны какие-то данные.
Но достаточно большая часть мемберов - это люди пожилого возраста.
И вот не стало контакта. Почему не должно быть штатной возможности удалить запись о нём из системы? Ну очевидный же ответ: такая запись должна иметь признак "неактуален". И тогда ней нельзя воспользоваться.
В некот. случаях она может быть нужна. Н-р посмотреть, был ли сделан звонок/контакт в 200х году при заключении договора ХХХ.

Тож самое - товары. Товар когда-то продавался, но сейчас его уже нет. Зачем его физически удалять из справочника ?
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505544
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ это кстати пример того, что не надо опыт разработки вашей системы переносить на все остальные.

В том то и дело, что вопрос ТС был общий и на самом деле до сих пор нет внятных аргумент за, как заметил LSV.
Вспоминается история времен зари перехода наших банков на забугорные АБС, когда представители вендора сильно округляли глаза, услышав, что одно из требований - возможность удалить проводку. И пришлось им таки это реализовывать в итоге.
Это к тому что не важно, какая система. На вопрос топика "Нужно ли связи в таблицах в sql?", ответ: если хочешь - конечно нужно, но особого профита от них не жди, и будь готов к возможному геморрою, связанному только с ними.
...
Рейтинг: 0 / 0
25 сообщений из 131, страница 4 из 6
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужно ли связи в таблицах в sql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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