|
|
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSV, извините, что задаю вопросы один по одному, просто хочу для себя разобраться. автор1. Не понял вопроса. Смотрите, мне никогда не надо делать следующую манипуляцию: а) закрываю книгу test.xls (то есть файл закрыт в программе excel); б) открываю файл test.xls для редактирования в notepad++; в) снова открываю файл test.xls в программе excel и получаю благодаря предыдущему редактированию какие то плюсы, например, что вообще заработала какая то функция в файле. То есть excel -- самодостаточная программа. Если не было физических ошибок при записи книги, то ничего вручную там в файле не наделаешь такого, чего нельзя сделать из excel. --- Вы пишите авторПри разработке системы часто приходится манипулировать данными в целях отладки, поиска ошибок и т.д. При этом иногда приходится кратковременно нарушать целостность. При этом: авторВ хорошо спроектированной системе нештатное удаление/искажение важных данных невозможно. Констрайнты просто никогда не сработают. То есть следуя прочитанному разработчику проще без constraint, но нормальной системе нужны constraint. а) обратите внимание, я не со стороны разработчика, а со стороны ТП смотрю. Мне проще и легче, что всяких правил и ограничений в БД нет, но зато испортить что нибудь мне также проще. Было бы логичнее если правила заранее задаст разработчик на уровне БД. Нет? б) у меня в голове не укладывается, что там разработчик хочет удалить вопреки бизнес логике и посмотреть что получится? Простой пример, 2 таблицы, одна фио + id город (внешний ключ); вторая id + город. Обе заполнили данными, затем разработчик хочет удалить город delete в sql. Ему БД говорит, нельзя. Делаем те же таблицы, только внешнего ключа нет, так из приложения id узнаём. Снова удаляем город в sql и что разработчик увидит? Как поведёт себя программа, если какой то специалист ТП зная пароль от БД сам удалит город на который есть связи? В чём ваще мысль такого удаления? И почему разработчик, зная свою систему не может тестово сперва очистить свзяи, а затем удалить город? Он то свою БД знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 12:23 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
1. Как-о в старой версии Экселя нотпадом грохал пароль. Открылось норм. :) И почему разработчик, зная свою систему не может тестово сперва очистить свзяи, а затем удалить город? Он то свою БД знает. В некот. случаях это придется делать 10-100 раз в день. Ну попробуй удали город (со всеми связями), а потом опять верни все назад. И так неск. раз. :) Связей может быть много к разным таблицам (город много где может используется). Запарися удалять/возвращать. Мне кажется я и так подробнейше описал почему констрайнты могут мешать в реальной повседневной работе.... По моему опыту пользы от них меньше, чем вреда. Чисто ИМХО. Далее впустую дискутировать не хочу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 12:41 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
авторВ некот. случаях это придется делать 10-100 раз в день. Ну попробуй удали город (со всеми связями), а потом опять верни все назад. И так неск. раз. :) Ясно, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 13:05 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSV1. Как-о в старой версии Экселя нотпадом грохал пароль. Открылось норм. :) И почему разработчик, зная свою систему не может тестово сперва очистить свзяи, а затем удалить город? Он то свою БД знает. В некот. случаях это придется делать 10-100 раз в день. Ну попробуй удали город (со всеми связями), а потом опять верни все назад. И так неск. раз. :) Связей может быть много к разным таблицам (город много где может используется). Запарися удалять/возвращать. Мне кажется я и так подробнейше описал почему констрайнты могут мешать в реальной повседневной работе.... По моему опыту пользы от них меньше, чем вреда. Чисто ИМХО. Далее впустую дискутировать не хочу. Да, лучше не пишите больше. И уходите из профессии, пока не поздно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 14:13 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
СидДа, лучше не пишите больше. И уходите из профессии, пока не поздно.Сына, не тебе решать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 15:52 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
stomskyЯ почему так подробно интересуюсь, - есть мнение, что SQL в качестве языка для реализации сложной бизнес-логики слишком неудобен. Поэтому бизнес логику лучше выносить на уровень сервисов, которые пишутся на JAVA, C# и прочих Питонах. Так на Java бизнес-логику ещё хуже писать, чем на SQL... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 18:11 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVНапример удобно хранить пустую ссылку как = 0, а не null. Но тогда констрайнту не наложишь. А если это строка или дата, как пустую ссылку хранить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 18:13 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
schiЧем больше таких утверждающих и дискутирующих, тем лучше - мне гарантирована востребованность на рынке труда. "Танцуйте, ребятки, танцуйте, и ваш нос вырастет длинным-длинным. А мы распилим его на дубинки." Во. Я тоже тешу себя этой мыслью... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 18:14 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
На самом деле думаю LSV сейчас просто уссывается над всеми... Типа ну-ну... пилите Шура, пилите - они золотые... Он просто нашел одного-двух денежных клиентов/лохов, сделал им пару помоек и им теперь ни дыхнуть ни пёрднуть без него, только и остается, что бабло слюнявить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 22:13 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
Успокаивает, что это в Киеве... пусть даже это в гос структуре... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 22:15 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
vmagНа самом деле думаю LSV сейчас просто уссывается над всеми... Типа ну-ну... пилите Шура, пилите - они золотые... Он просто нашел одного-двух денежных клиентов/лохов, сделал им пару помоек и им теперь ни дыхнуть ни пёрднуть без него, только и остается, что бабло слюнявить... Думаю, все проще - 1С ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2017, 12:16 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
MasterZivLSVНапример удобно хранить пустую ссылку как = 0, а не null. Но тогда констрайнту не наложишь. А если это строка или дата, как пустую ссылку хранить ?Какие однако дилетантские вопросы :). Строка = пустая строка (не null),'-', '?', 'пусто' или что-то типа того на усмотрение разработчика. Дата = некое значение, принятое в системе за "пусто", н-р 2000-01-01 или 1900-01-01. Это для примера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2017, 09:40 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
vmagУспокаивает, что это в Киеве... пусть даже это в гос структуре... Проф. безграмотность везде обидно видеть. Киев не исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2017, 14:49 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVMasterZivпропущено... А если это строка или дата, как пустую ссылку хранить ?Какие однако дилетантские вопросы :). Строка = пустая строка (не null),'-', '?', 'пусто' или что-то типа того на усмотрение разработчика. Дата = некое значение, принятое в системе за "пусто", н-р 2000-01-01 или 1900-01-01. Это для примера. Я знал, что ты так ответишь! :-) 0) ты в курсе, что в некоторых СУБД НЕТ ПУСТЫХ СТРОК ? Пустая строка -- это NULL 1) классно, а что если завтра придёт клиент, и захочет завести документ именно за дату 2000-01-01 или 1900-01-01 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2017, 14:52 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
MasterZivLSVпропущено... Какие однако дилетантские вопросы :). Строка = пустая строка (не null),'-', '?', 'пусто' или что-то типа того на усмотрение разработчика. Дата = некое значение, принятое в системе за "пусто", н-р 2000-01-01 или 1900-01-01. Это для примера. Я знал, что ты так ответишь! :-) 0) ты в курсе, что в некоторых СУБД НЕТ ПУСТЫХ СТРОК ? Пустая строка -- это NULL 1) классно, а что если завтра придёт клиент, и захочет завести документ именно за дату 2000-01-01 или 1900-01-01 ?0) тогда принимаем за "пусто" что-то другое из вышеперечисленного. 1) за "пусто" надо принимать значение, кот. никогда не появится в системе. Многие СУБД вообще не готовы для штатного хранения исторических дат н-р 332г. до н.э. И чо теперь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2017, 16:10 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
для россейских заднеприводных манагеров и раздолбаев программиздов ни FK не нужны, ни ER диаграммы, ни много чего еще. Ибо тяп-ляп - и в продакшн. Когда будут много миллионные иски к компаниям и штрафы для работников, тогда и понадобится комплексный подход к проектам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2017, 19:04 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVзы: Тот, кто настаивает на использовании FOREIGN KEY просто мало работал с реальными данными. :) 14 лет - это мало? Когда ждать просветления? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2017, 11:40 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANALSVзы: Тот, кто настаивает на использовании FOREIGN KEY просто мало работал с реальными данными. :) 14 лет - это мало? Когда ждать просветления? :)"Мудрость не всегда приходит с возрастом. Часто возраст приходит один" (с) :) зы: Никто так толком и не объяснил, для чего ему констрайнты ? От какого рода угроз они спасают ? При этом, заметьте, я не сказал, что использование констрайнт "неверно" или типа того. Это просто одна из необязательных возможностей. Нравится - пользуй, не нравиццо - не пользуй. Я из тех, кому не нравиццо. Аргументы я привел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 10:00 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSV, практически все Ваши аргументы опираются на задачи, когда наличие foreign key никак не мешает их успешному решению, плавали - знаем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 10:28 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
skyANALSV, практически все Ваши аргументы опираются на задачи, когда наличие foreign key никак не мешает их успешному решению, плавали - знаем :)Решить можно практически любую задачу. Весь вопрос в цене. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 10:35 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVskyANALSV, практически все Ваши аргументы опираются на задачи, когда наличие foreign key никак не мешает их успешному решению, плавали - знаем :)Решить можно практически любую задачу. Весь вопрос в цене. :) Хм, основная задача ограничения FOREIGN KEY - это управление данными, которые могут быть сохранены в таблице внешнего ключа и контроль изменение данных в таблице первичного ключа. Зачем же платить большую цену за свой велосипед? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 10:44 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVНиодна тиражная ERP система не использует ФК. Почему-то, никто не оспаривает это утверждение. Неужели это правда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 11:07 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
DirksDRLSVНиодна тиражная ERP система не использует ФК. Почему-то, никто не оспаривает это утверждение. Неужели это правда? Распространенные - не используют. К сожалению. Лично я считаю, что FK лучше использовать, как минимум в рамках одного модуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 11:15 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
DirksDRLSVНиодна тиражная ERP система не использует ФК. Почему-то, никто не оспаривает это утверждение. Неужели это правда? Когда разрабатывал ERP, то это была заказная разработка под крупную нефтяную компанию (100 серверов по всей России). Так вот там данных было до фига, а задач по работе с ними дофигища. И ограничения FOREIGN KEY не мешали, а только не хило снижали риски того, что какой-то нерадивый админ в Ангарске ручками в базу полез и похерил что-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 12:55 |
|
||
|
Нужно ли связи в таблицах в sql
|
|||
|---|---|---|---|
|
#18+
LSVMasterZivпропущено... Я знал, что ты так ответишь! :-) 0) ты в курсе, что в некоторых СУБД НЕТ ПУСТЫХ СТРОК ? Пустая строка -- это NULL 1) классно, а что если завтра придёт клиент, и захочет завести документ именно за дату 2000-01-01 или 1900-01-01 ?0) тогда принимаем за "пусто" что-то другое из вышеперечисленного. 1) за "пусто" надо принимать значение, кот. никогда не появится в системе. Многие СУБД вообще не готовы для штатного хранения исторических дат н-р 332г. до н.э. И чо теперь ? Я этим как бэ намекал, что сначала ты весело живёшь, а потом наступает то самое "никогда". Именно для этого придумали NULL, документированный и хорошо всем разработчикам известный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2017, 13:05 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39504809&tid=1540145]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 420ms |

| 0 / 0 |

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