|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
hVosttЗвучит отвратительно даже в теории. Так то, ограничения foreign key -- злющее зло. Индексы -- надо бросать на все поля вдоль и поперёк. Всегда можно наложить ограничение в запросе, так? Знавал одних чуваков, так когда у них с БД что-то не пошло и решили, что все из-за того, что при выборках слишком много джойнов, так они вообще все таблицы со всеми связали по FK ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 13:50 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
"Создание в таблице связи отдельного поля PK приводит к необходимости создания и ведения дополнительного уникального индекса. Ради чего? " Необходимость создания и ведения уникального индекса состоит в том, чтобы в таблице USR_IN_GROUP не появились, например, такие строки ... 1000, 1, 1 ... 2555, 1, 1 ... С реляционной точки зрения, это важнее всего остального. Что касается заказов, то "Каждый заказ может содержать одну или несколько позиций, каждая позиция может принадлежать одному и только одному заказу". Где здесь М:М вместе с заморозкой позиций? FK всего лишь говорит, что ЭТА позиция принадлежит ЭТОМУ заказу, а не ТОМУ. Без всяких других аспектов функционирования системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 14:18 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Юзер 01, Смысл есть, но если Вам непонятно зачем это, то не нужно.) В целом вопрос довольно странный. Есть принципы построения реляционных баз, отступать от них можно, если понимаешь, в чем причина так делать в конкретном случае. Если нет, то лучше следовать им. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 14:24 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Еще раз. Смысла нет, так как придется построить еще один потенциальный ключ! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 14:29 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Wlr-lЕще раз. Смысла нет, так как придется построить еще один потенциальный ключ!и в чём сложность? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 14:36 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
egorych, В бессмысленности! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 14:42 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Wlr-lВ бессмысленности!пахнуло религиозным фанатизмом сейчас)) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 14:49 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
egorychпахнуло религиозным фанатизмом сейчас)) Итак, у нас два потенциальных ключа: (USR_ID, USR_GROUP_ID) и (ID). Первый решает задачу уникальности пар USR_ID и USR_GROUP_ID. Второй эту задачу не решает. Где здесь фанатизм? От двух потенциальных ключей веет религиозным фанатизмом ключ=одно поле таблицы! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 15:06 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
hVosttViPRoshVostt, мало плавал :) лучше любую связь рассматривать как М:М и при нужде наложить ограничение для сужения Звучит отвратительно даже в теории. Так то, ограничения foreign key -- злющее зло. Индексы -- надо бросать на все поля вдоль и поперёк. Всегда можно наложить ограничение в запросе, так? Смотря в какой теории. Связь - всегда сама по себе. Связь может иметь и имеет Собственные свойства, присущие только связи. Ограничение на мощность связи легко создается и снимается. Связь можно легко убить и добавить (жизнь в динамике). ... Связь - мощная контекстобразующая метаструктура. ... Всякие форинкейи, индексы и т.д. к связям никакого отношения не имеют. Вощем, это пока не твой хлеб. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 15:44 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Wlr-lНеобходимость создания и ведения уникального индекса состоит в том, чтобы в таблице USR_IN_GROUP не появились, например, такие строки ... 1000, 1, 1 ... 2555, 1, 1 ... С реляционной точки зрения, это важнее всего остального. Эммм.. и что? PK является таким индексом и хранится в таблице, не создаёт лишних накладных расходов. Я понимаю, когда без них никак. Но зачем нагружать БД тем, без чего прекрасно можно и нужно обходиться? Wlr-lЧто касается заказов, то "Каждый заказ может содержать одну или несколько позиций, каждая позиция может принадлежать одному и только одному заказу". Где здесь М:М вместе с заморозкой позиций? FK всего лишь говорит, что ЭТА позиция принадлежит ЭТОМУ заказу, а не ТОМУ. Без всяких других аспектов функционирования системы. Мозги не думать. Понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 15:51 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
fkthatЗнавал одних чуваков, так когда у них с БД что-то не пошло и решили, что все из-за того, что при выборках слишком много джойнов, так они вообще все таблицы со всеми связали по FK Ну, я же говорил, FK -- зло ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 15:52 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
ViPRosСвязь - всегда сама по себе. Проблема вот в этом утверждении. Как только связь становится «сама по себе» и создаётся на какой-нибудь отдельной вкладочке «Связи» — это колхоз и выливается 100% в систему, которую с какой стороны не тронь, всё пойдёт по п.....е. Связь это отношение, т.е. характеристика конкретного объекта. С обоих сторон она должна выражаться определением этого объекта. А то ты так свяжешь агрегат автомобиля с категорией холодильников, и всё выглядит здорово, только у пришедшего аналитика возникают вопросы, где взять канистру с бензином, чтобы всё нахрен сжечь и посадить на кол колхозников-разработчиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 15:56 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
ViPRos, "Связь - всегда сама по себе." Связь - это нечто между чем-то и чем-то. Если не будет этих "чем-то" и "чем-то", то что есть "связь"? Если все хорошо в многомерном пространстве, то как это будет в одномерном? Можно объяснить на примере заказа и позиции? Особенно в динамике, когда "связь сама по себе". ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 15:57 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Wlr-lЕсли все хорошо в многомерном пространстве, то как это будет в одномерном? Можно объяснить на примере заказа и позиции? Особенно в динамике, когда "связь сама по себе". Да у него в его системе для «всего и вся» связи ведутся и управляются отдельно. Тем же колхозным путём пошли и разработчики Галактики. К слову, на 3-х часовой демонстрации возможностей Галактики, самый главный эксперт уже через час, когда показывал самые простые вещи и азы, стал теряться и путаться, по десять минут лазая по вкладочкам, коих миллион и табличкам, коих миллион, чтобы сделать простейшие с точки зрения бизнеса вещи. Адище в общем. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 15:59 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Wlr-l, Заседание РАН в полном разгаре: - Связь - это нечто между чем-то и чем-то. Если не будет этих "чем-то" и "чем-то", то что есть "связь"? - Этот, как там, академик какой-то фигни, хватит нам всякое то об том, то об этом! Давайте что-то это. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 16:00 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
hVostt, "PK является таким индексом и хранится в таблице, не создаёт лишних накладных расходов. Я понимаю, когда без них никак. Но зачем нагружать БД тем, без чего прекрасно можно и нужно обходиться?" Как обеспечить уникальность пар USR_ID и USR_GROUP_ID, если есть ключ по ID? Человека, вводящего данные, не предлагать! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 16:03 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Wlr-lКак обеспечить уникальность пар USR_ID и USR_GROUP_ID, если есть ключ по ID? я как раз против дополнительного суррогатного ID. в таблице связи он как третье колено. и всякие «репликации» — очень плохая отмазка. очень. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 16:09 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Wlr-l Как обеспечить уникальность пар USR_ID и USR_GROUP_ID, если есть ключ по ID? Это хорошая заявка на номинацию "Самый бредовый вопрос форума", как минимум за 2018 год ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 16:11 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Тем же колхозным путём пошли и разработчики Галактики.Бро, ты не в теме. :) Этим путем пошли почти все создатели взрослых ERP систем. Внезапно (с) Я даже не знаю, есть ли среди ERP систем, где не применяют этот колхозный путь. Мне таковые неизвестны. Мож ты знаешь ? :) зы: Уже была недавно такая тема про ФК (нужны/не нужны). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 16:19 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Кот Матроскин, "Это хорошая заявка на номинацию "Самый бредовый вопрос форума", как минимум за 2018 год". Спасибо за рекламу. Но я бы, как минимум, сначала понял бы, о чем идет речь! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 16:28 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
LSVЭтим путем пошли почти все создатели взрослых ERP систем. Внезапно (с) Я даже не знаю, есть ли среди ERP систем, где не применяют этот колхозный путь. Мне таковые неизвестны. Мож ты знаешь ? :) мы разработали такую систему, решающую задачи уровня галактики. у нас ни намёка ни на какие отдельно стоящие «Связи». если какая-то бизнес-сущность имеет связь с другой, это непосредственно её характеристика. у нас есть внедрение на федеральном уровне в сфере энергетики. и несколько региональных. но мы не конкурируем ни с випросами, ни с галактиками, так как у нас нет и никогда не было цели написать комбайнер, решающий все задачи в мире. это глупо и наивно, хотя до сих пор в этой топке сжигаются миллионы советских рублей и усилий. LSVзы: Уже была недавно такая тема про ФК (нужны/не нужны). я говорил про то, что обычное FK выделяется в отдельную сложную многогранную, как душа неотёсанной девственницы, сущность. которую надо отдельно вести и поддерживать. это колхоз. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 17:04 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
hVostt, автору нас есть внедрение на федеральном уровне в сфере энергетики. и несколько региональных. И небольшой проэкт в сфере рекламы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 17:10 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Wlr-lНо я бы, как минимум, сначала понял бы, о чем идет речь! Но почему-то Вы этого не сделали (как можно заметить, Ваш собеседник тоже усомнился в адекватности именно этого вопроса именно ему). Т.е. вопрос не просто бредов сам по себе, но и в контекст дискуссии попадает не очень. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 17:11 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
мы разработали такую систему, решающую задачи уровня галактики.Это глубоко внутренний проект в 1-м экземпляре. Попробуй написать что-нить тиражируемое и активно эволюционирующее. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 17:34 |
|
Стоит ли делать отдельное поле для PK?
|
|||
---|---|---|---|
#18+
Кот МатроскинWlr-lНо я бы, как минимум, сначала понял бы, о чем идет речь! Но почему-то Вы этого не сделали (как можно заметить, Ваш собеседник тоже усомнился в адекватности именно этого вопроса именно ему). Т.е. вопрос не просто бредов сам по себе, но и в контекст дискуссии попадает не очень. Исходный вопрос "Стоит ли делать отдельное поле для PK?". hVostt, Cane Cat Fisher и я сказали, что нет, не надо. У тех, кто говорит, что надо, я и спросил "Как обеспечить уникальность пар USR_ID и USR_GROUP_ID, если есть ключ по ID?". Еще раз, Вы потеряли нить беседы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2018, 17:37 |
|
|
start [/forum/topic.php?fid=32&msg=39604866&tid=1540075]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 285ms |
0 / 0 |