powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужно ли связи в таблицах в sql
25 сообщений из 131, страница 5 из 6
Нужно ли связи в таблицах в sql
    #39505547
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНу очевидный же ответ: такая запись должна иметь признак "неактуален".
Может иметь такой признак, а может иметь признак "архивная", или ещё какой, но при этом пользователь хочет иметь возможность её удалить с корнями.

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

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

В том то и дело, что вопрос ТС был общий и на самом деле до сих пор нет внятных аргумент за, как заметил LSV.
Вспоминается история времен зари перехода наших банков на забугорные АБС, когда представители вендора сильно округляли глаза, услышав, что одно из требований - возможность удалить проводку. И пришлось им таки это реализовывать в итоге.
Это к тому что не важно, какая система. На вопрос топика "Нужно ли связи в таблицах в sql?", ответ: если хочешь - конечно нужно, но особого профита от них не жди, и будь готов к возможному геморрою, связанному только с ними.
А какой такой ОСОБЫЙ профит Вам нужен-то? :)
Написали уже зачем нужен FOREIGN KEY и какие бывают причины нарушений ссылочной целосности.

Если у Вас с этим нет проблем, или Вы используете какие-то там признаки, или триггера, или специальным кодом обкладываете, так флаг Вам в руки :)
А мы вот используем родной механизм СУБД и проблем с ним не встречали и не встречаем.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505586
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANALSVНу очевидный же ответ: такая запись должна иметь признак "неактуален".
Может иметь такой признак, а может иметь признак "архивная", или ещё какой, но при этом пользователь хочет иметь возможность её удалить с корнями.
Зачем его ограничивать, если это его данные и он суперадмин, или член совета директоров?ЯННП. К чему этот вопрос ? Стёб такой ?
Есть правила построения ИС. И они не смотрят, директор это или уборщица.
Чисто технически можно и такое предусмотреть. Ничто особо не мешает.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505835
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЕсть правила построения ИС.
О каких правилах речь? Ссылку дайте.

А вопрос к тому, что пользователи разные бывают и принято одним давать минимум функционала, а другим максимум.
Вы с этим не согласны?
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505932
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAО каких правилах речь? Ссылку дайте.ОК.
тынц :)
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505938
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVskyANAО каких правилах речь? Ссылку дайте.ОК.
тынц :)
Что-то похоже на то, что Вы юлите. Где конкретно Дейт пишет, что не должно быть штатной возможности удаления в Б/Л?
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39505940
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот тому, что Вы отрицаете, он посвятил целую главу :)
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506079
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЧто-то похоже на то, что Вы юлите. Где конкретно Дейт пишет, что не должно быть штатной возможности удаления в Б/Л?существенно дополню: удаления с нарушением СЦ .
По хорошему - не должно быть. Но если "очень нужно", то можно. :) Главное помнить про это.
Всё, что пишут всякие Дейты, Чены и прочие Конолли это не более чем теория и рекомендации.
В любой более-менее большой инф. системе можно найти отход от канонов. Это нормально.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506123
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVskyANAЧто-то похоже на то, что Вы юлите. Где конкретно Дейт пишет, что не должно быть штатной возможности удаления в Б/Л?существенно дополню: удаления с нарушением СЦ .
По хорошему - не должно быть.Да, не должно быть. И ограничения СЦ это гарантируют.

LSVНо если "очень нужно", то можно. :) Главное помнить про это.Если "очень нужно", то можно отключить проверку ограничений, сделать то, что "очень нужно", включить проверку обратно.
И не надо ничего дополнительно помнить, документировать, кодить.

LSVВсё, что пишут всякие Дейты, Чены и прочие Конолли это не более чем теория и рекомендации.Вы сами привели ссылку на Дейта, и сами же от неё открестились. Вы право, чудак :)

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

И не надо ничего дополнительно помнить, документировать, кодить.Как это не надо ? Надо, бро... Не везде можно установить СЦ, поэтому надо всегда помнить, где она есть, а где нет.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506156
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVskyANAС этим не спорю. Но сложилось впечатление, что Вы свой "отход от канонов" выдаёте за истину в первой инстанции :)Впечатление складывается у не в меру впечатлительных. :)Шутка на 2 балла :)

LSVВыдаю не за истину в первой инстанции, а всего лишь за бест-практис с описанием случаев применимости. И не более.Это не бест-практис хотя бы потому, что в описанных Вами случаях ограничения СЦ не создают никаких проблем.

LSVИ не надо ничего дополнительно помнить, документировать, кодить.Как это не надо ? Надо, бро... Не везде можно установить СЦ, поэтому надо всегда помнить, где она есть, а где нет.Я ему про Фому, он мне про Ерёму :)

Ещё раз: если использовать штатный механизм СУБД, то не надо пилить свой велосипед, документировать его и помнить о нём - это же очевидно.

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

СЦ на механизмах СУБД не использует подавляющее число крупных ERP/КИС: 1С/SAP/AXAPTA/NAVISION/JDE.
Не знаю насчет Галактики, BAAN, OEBS. Но думаю, что и там вряд ли.

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

А "не удалять совсем"...

У меня это было реальное требование во времена разработки АИС ТПС, после того как в одном из регионов один из операторов удалил не те данные.
Правда звучало оно не "не удалять совсем", а "на самом деле не удалять, а помечать как неактивные".
Для оператора это выглядело как удаление, а пользователи с более широкими правами могли как восстановить, так и "удалять совсем".
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506678
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVskyANAесли использовать штатный механизм СУБДЭтого механизма для сохранения целостности Б/Л в общем случае недостаточно.
О чём конкретно речь? Можете пояснить, что за целостность бизнес логики такая?

LSVЯ не знаю ниодной известной тиражной системы, где это применяется.Хм, Мастер-Тур. Очень даже известная тиражная система в своей нише.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506679
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВы ещё скажите, что всю электронную переписку храните за последние 10 лет :)
Переписка, бухгалтерские проводки, логи с электронной проходной.
С 1995г храним . . .
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506689
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV,

https://help.sap.com/saphelp_nw73ehp1/helpdata/en/cf/21ea77446011d189700000e8322d00/frameset.htm

Это про SAP у которого ссылочная целостность не используется.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506701
azsx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор"удалять вопреки всякой логике" - это Вы о чём?
Простой пример. Две таблицы, 1 табл. поля: фио + город; 2 табл. поля: фирма + город. Город может поменять название или объединится с другим (удалиться).
По моему мнению контроль на уровне одинаковости названий городов нужен. Третья таблица - города, внешний ключ с двух таблиц. И null для города недопустим.
Причина, так как админ софта "на местах" убъётся, но заставит дать ему права root от БД, так как он ж программист и sql знает. И он обязательно найдёт причины по которым надо править и удалять города напрямую прямо в таблице и обязательно в первом варианте не подумает, что надо править не только в таблице с фио, но и в таблице с фирмами.
Я могу понять зачем вы это делаете на уровне разработчиков (сам любитель).
В фирме, которая пишет софт эффектный менеджер, который заставил внедрить в софт фичи "шьёт, жнёт и на дуде играет" и БД и логика в программе очень усложнена. Также программистам платят мало, они бегут как тараканы. Нафиг в такой фирме усложнять sql логику, пусть админы правят всё что хотят, типа им же хуже.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506717
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183skyANAВы ещё скажите, что всю электронную переписку храните за последние 10 лет :)
Переписка, бухгалтерские проводки, логи с электронной проходной.
С 1995г храним . . .
А Вы лично тоже храните свою переписку за последние 10 лет? Любой спам?
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506720
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azsxавтор"удалять вопреки всякой логике" - это Вы о чём?
Простой пример. Две таблицы, 1 табл. поля: фио + город; 2 табл. поля: фирма + город. Город может поменять название или объединится с другим (удалиться).
По моему мнению контроль на уровне одинаковости названий городов нужен. Третья таблица - города, внешний ключ с двух таблиц. И null для города недопустим.
Причина, так как админ софта "на местах" убъётся, но заставит дать ему права root от БД, так как он ж программист и sql знает. И он обязательно найдёт причины по которым надо править и удалять города напрямую прямо в таблице и обязательно в первом варианте не подумает, что надо править не только в таблице с фио, но и в таблице с фирмами.
Я могу понять зачем вы это делаете на уровне разработчиков (сам любитель).
В фирме, которая пишет софт эффектный менеджер, который заставил внедрить в софт фичи "шьёт, жнёт и на дуде играет" и БД и логика в программе очень усложнена. Также программистам платят мало, они бегут как тараканы. Нафиг в такой фирме усложнять sql логику, пусть админы правят всё что хотят, типа им же хуже.
Извините, но ни фига не понял. Такое впечатление, что Вы просто эмоции выплёскиваете :)
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506725
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azsxИ он обязательно найдёт причины по которым надо править и удалять города напрямую прямо в таблице и обязательно в первом варианте не подумает, что надо править не только в таблице с фио, но и в таблице с фирмами.
Вот тут (если использовать ограничения СЦ) ему СУБД скажет, что удаление не возможно, так как есть ссылка на город из таблицы с фирмами.

Но повторюсь, что я так и не понял при чём тут "удалять вопреки всякой логике". Вроде логика ясна: надо "склеить" две записи об одном городе в одну.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506734
azsx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВот тут (если использовать ограничения СЦ) ему СУБД скажет, что удаление не возможно, так как есть ссылка на город из таблицы с фирмами.
Именно поэтому в своих любительских программах я ограничения ставлю. Но я читаю, что некоторые профессионалы ограничения на уровне СУДБ не ставят и в пример, что ограничения надо ставить только на уровне логике софта приводят названия софта, где такого контроля нет. Я ограничения ставить буду, но уже не уверен, что прав.
авторНо повторюсь, что я так и не понял при чём тут "удалять вопреки всякой логике". Вроде логика ясна: надо "склеить" две записи об одном городе в одну.
Логика, если город менять, то в обоих таблицах. Если есть внешний ключ, то замена сразу в обоих таблицах будет. А если разработчику внешние связи только мешают, то админ на месте может "вопреки всякой логике" sql запросом в одной таблице поменять название города, а во второй забыть.
Если таких связей десятки, они не текст, а на числа и хеши -- то ограничения на уровне БД (по моему мнению) прямо спасение перед совершением непоправимой ошибки.
...
Рейтинг: 0 / 0
Нужно ли связи в таблицах в sql
    #39506735
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О чём конкретно речь? Можете пояснить, что за целостность бизнес логики такая?На 1 и 2 странице треда писал раза три.

Целостность Б/Л это не только запрет удаления строки со ссылкой. Это комплексное понятие.
Поэтому желательно ее делать в одном месте и удобным способом для данного проекта: на клиенте, в сервере приложений, ХП и пр.
Туда может войти в т.ч. запрет удаления, если есть к.л. ссылка (т.е. аналог СЦ-констрайнт).

Я применял ХП. При попытке удаления строки делалась куча проверок. Есть проверка ОК, то делался ряд действий (очистка журналов, смена статусов строк, пересчеты и т.д.). Весь код в одном месте. При желании можно часть проверок отключить в один клик.

Также проверка возвращает вменяемое сообщение об ошибке (паруззке и со значениями ключей), что невозможно при срабатывании СЦ_СУБД.
...
Рейтинг: 0 / 0
25 сообщений из 131, страница 5 из 6
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужно ли связи в таблицах в sql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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