|
|
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANALSVзы: Тот, кто настаивает на использовании FOREIGN KEY просто мало работал с реальными данными. :) 14 лет - это мало? Когда ждать просветления? :) Ещё лет 10-20 наверное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 13:06 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVзы: Никто так толком и не объяснил, для чего ему констрайнты ? От какого рода угроз они спасают ? Констрейнты вообще спасают от нарушения целостности данных. Констрейнты FK -- от нарушения ссылочной целостности данных. Констрейнты CHECK -- от нарушения доменной целостности данных Констрейнты UNIQUE, PK -- от нарушения уникальности ключа. Да, если тебе насрать на твои данные, констрейнты можно не использовать... 80% WEB проектов так и делают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 13:09 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
DirksDRLSVНиодна тиражная ERP система не использует ФК. Почему-то, никто не оспаривает это утверждение. Неужели это правда? Так что с бредом-то спорить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 13:09 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
MasterZivDirksDRпропущено... Почему-то, никто не оспаривает это утверждение. Неужели это правда? Так что с бредом-то спорить... А какие используют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 13:12 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
MasterZivКонстрейнты вообще спасают от нарушения целостности данных. Констрейнты FK -- от нарушения ссылочной целостности данных. Констрейнты CHECK -- от нарушения доменной целостности данных Констрейнты UNIQUE, PK -- от нарушения уникальности ключа.ок. Почему может наступить нарушение целостности ? Это когда ручками туда залесть ? Кто и зачем ? :) Как наложить констрайнту, если в поле может находится ссылка на неск. типов документов (связка: тип док./ключ) ? зы: обсуждаем только ссылочную ц-сть. Уникальность ключа использую постоянно, исличо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 14:21 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVПочему может наступить нарушение целостности ? Ссылочная целостность - Причины нарушений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 15:04 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVКак наложить констрайнту, если в поле может находится ссылка на неск. типов документов (связка: тип док./ключ) ? Хм. Просто ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 15:05 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANALSVПочему может наступить нарушение целостности ? Ссылочная целостность - Причины нарушений Не надо давать эти баянные ссылки. Я хочу, чтоб человек ответил своими словами. :) В хорошо спроектированной системе не будет срабатывания СЦ. Удаление записей с СЦ вообще должно быть недоступно в Б/Л. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 15:19 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSV, 1. Можно генерировать триггеры (а так хреново, что нельзя сослаться на view) 2. Обычно с одной БД работают разные "системы", потому нельзя положиться на "хорошее проектирование" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 15:38 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVВ хорошо спроектированной системе... Да, да. Без технического долга и т.п. :) Ещё скажите Вы ни разу рефакторингом не занимались, тогда Вы мало ещё работали с системами :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 15:42 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVУдаление записей с СЦ вообще должно быть недоступно в Б/Л. С чего это вдруг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 15:43 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
ViPRosОбычно с одной БД работают разные "системы", потому нельзя положиться на "хорошее проектирование" +100500 Изначально стоит задача быстро выйти на рынок, потом обрасти различными "системами" ради конкурентного преимущества. И очень трудно доказывать бизнесу, что надо бы побольше времени на проектирование закладывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 15:46 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANA, а с того, что как раз при проектировании не смогли сделать все варианты, а сделали: удаление сложно - потому не будем делать!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 15:46 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
ViPRosskyANA, а с того, что как раз при проектировании не смогли сделать все варианты, а сделали: удаление сложно - потому не будем делать!!! То есть импортировать к примеру пользователь данные может, а удалить нет? Удобно, чё :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 15:48 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANAViPRosskyANA, а с того, что как раз при проектировании не смогли сделать все варианты, а сделали: удаление сложно - потому не будем делать!!! То есть импортировать к примеру пользователь данные может, а удалить нет? Удобно, чё :) да просто все зависит от "системы" 1. "система" фиксирует не большой поток данных (ручной ввод че нить или еще какой поток) (тут можно и не удалить считают) 2. "система" фонтанирует данными (какие то алгоритмы генерируют большие потоки данных - например, версии расписаний работы завода, аэропорта,..) (тут уж не удалить никак не получится) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:00 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANALSVУдаление записей с СЦ вообще должно быть недоступно в Б/Л. С чего это вдруг?Неправильно выразился. ... Речь про срабатывание защиты с СЦ. Не должно быть штатной возможности удалить запись, на кот. есть ссылка. Причем именно Б/Л-ссылка, т.е. в т.ч. и те случаи, кот. невозможно накрыть с помощью СЦ. Именно поэтому СЦ малоценна, т.к. есть многочисленные случаи, когда ее нельзя применить. СЦ - полумера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 16:34 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
ViPRosда просто все зависит от "системы" Именно. Вот только камрад LSV этого почему-то не понимает, хотя намекает на то, что имеет достаточно большой опыт работы с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 17:13 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVНе должно быть штатной возможности удалить запись, на кот. есть ссылка. Это почему вдруг? К примеру нашей системой пользуются более 20000 некоммерческих организаций. И все они загружают контакты своих мемберов. И с этими контактами в процессе жизни организации связаны какие-то данные. Но достаточно большая часть мемберов - это люди пожилого возраста. И вот не стало контакта. Почему не должно быть штатной возможности удалить запись о нём из системы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 17:19 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANALSVНе должно быть штатной возможности удалить запись, на кот. есть ссылка. Это почему вдруг? К примеру нашей системой пользуются более 20000 некоммерческих организаций. И все они загружают контакты своих мемберов. И с этими контактами в процессе жизни организации связаны какие-то данные. Но достаточно большая часть мемберов - это люди пожилого возраста. И вот не стало контакта. Почему не должно быть штатной возможности удалить запись о нём из системы? Эмм... А что будете делать, когда вам позвонит пользователь в слезах, и попросить как то восстановить результат отработки штатного механизма удаления, который был по ошибке применен не к тому контакту? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 17:36 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
buven, это сооовсем другой вопрос, никакого отношения к удалению не имеющий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 17:54 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
buvenskyANAпропущено... Это почему вдруг? К примеру нашей системой пользуются более 20000 некоммерческих организаций. И все они загружают контакты своих мемберов. И с этими контактами в процессе жизни организации связаны какие-то данные. Но достаточно большая часть мемберов - это люди пожилого возраста. И вот не стало контакта. Почему не должно быть штатной возможности удалить запись о нём из системы? Эмм... А что будете делать, когда вам позвонит пользователь в слезах, и попросить как то восстановить результат отработки штатного механизма удаления, который был по ошибке применен не к тому контакту? Вот ни разу не звонили по этому поводу :) Хотя когда вот писали ERP, то был такой прецедент, после чего у записей появился признак активности и они на самом деле не удалялись, а делались не активными. Но это уже другая компания, другая система, другие данные, другие требования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 18:09 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
И это кстати пример того, что не надо опыт разработки вашей системы переносить на все остальные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 18:11 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
Бывают случаи, когда у тебя есть небольшое окно, в которое надо успеть протащить данные из оперативной системы в хранилище, некогда разбираться сейчас, загрузил ли ты товары к этим покупкам или нет из мдм. А вот потом после трансформаций/проверок в новые ухоженные объекты можно разложить уже с констрейнтами. А бывает, пытаются создать уполномоченного к еще не созданному юрлицу. Оно, конечно, всегда создается раньше, но в этот раз разработчики какого-нибудь очередного микросервиса в один момент положили узел шины, и понеслось. Я к тому, что в БД нельзя доверять никому, даже своему собственному надприложению с бизнес-логикой. А поменяют там что, да ошибку допустят - лучше не дать испоганить данные, чем потом разгребать, особенно если это повлечет штрафы. Ну и напоследок - бывает так, что тебе приходится делать что-то неествественное с данными в своей базе совсем не по своей вине. Очередное приложение очень важно для бизнеса, но вот не предусмотрели они, что у тебя может не быть еще в базе значения, например, из налоговой, ну не прислали, хотя доки уже тут, клиенты негодуют. Давай ты сделай быренько, чтобы им просто нужные значения вернулись, потом удалишь. АПИ и скрипты на все случаи не запасешься в этом меняющемся мире, поэтому вполне возможно что даже ты, о мудрый, не всегда правильно подчистишь или, наоборот, добавишь, а вдруг кто новенький пришел, найди потом, где напортил. Отказываюсь констрейнты, в том числе СЦ, делать только при уважительных причинах. Но заполнять проверками типа ключевания инн, имхо не стоит, это уже к бизнес-логике больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 23:40 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANALSVНе должно быть штатной возможности удалить запись, на кот. есть ссылка. Это почему вдруг? К примеру нашей системой пользуются более 20000 некоммерческих организаций. И все они загружают контакты своих мемберов. И с этими контактами в процессе жизни организации связаны какие-то данные. Но достаточно большая часть мемберов - это люди пожилого возраста. И вот не стало контакта. Почему не должно быть штатной возможности удалить запись о нём из системы? Ну очевидный же ответ: такая запись должна иметь признак "неактуален". И тогда ней нельзя воспользоваться. В некот. случаях она может быть нужна. Н-р посмотреть, был ли сделан звонок/контакт в 200х году при заключении договора ХХХ. Тож самое - товары. Товар когда-то продавался, но сейчас его уже нет. Зачем его физически удалять из справочника ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 10:00 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANAИ это кстати пример того, что не надо опыт разработки вашей системы переносить на все остальные. В том то и дело, что вопрос ТС был общий и на самом деле до сих пор нет внятных аргумент за, как заметил LSV. Вспоминается история времен зари перехода наших банков на забугорные АБС, когда представители вендора сильно округляли глаза, услышав, что одно из требований - возможность удалить проводку. И пришлось им таки это реализовывать в итоге. Это к тому что не важно, какая система. На вопрос топика "Нужно ли связи в таблицах в sql?", ответ: если хочешь - конечно нужно, но особого профита от них не жди, и будь готов к возможному геморрою, связанному только с ними. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2017, 12:32 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39505048&tid=1540145]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 403ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...