|
|
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
Только что возник спор с "арихитектором", делать или нет ключ(ID) в зависимой таблице. Он утверждает что нафиг ненужно. А доводов за то что бы "делать" особо нет. Но мне разработчику так понятней. что есть ключ (ID) в таблице .. ну скажем ORDERS, есть ссылка на него из ORDER_ITEMS. И как бы уникальный ключ (ID) в таблице ORDER_ITEMS не нужен. Архитектор аппелирует к тому что в ORDER_ITEMS уникальность соблюдается по двум полям ORDER_ID и GOOD_ID и этого как бы вполне достаточно. Существуют ли доводы за то что бы использовать уникальный ключ в зависимой таблице и так ли он необходим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 18:02 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
> Только что возник спор с "арихитектором", делать или нет ключ(ID) в зависимой > таблице. Он утверждает что нафиг ненужно. А доводов за то что бы "делать" особо > нет. Но мне разработчику так понятней. что есть ключ (ID) в таблице .. ну скажем > ORDERS, есть ссылка на него из ORDER_ITEMS. И как бы уникальный ключ (ID) в > таблице ORDER_ITEMS не нужен. В смысле в подчинённой таблице есть уже уникальный ключ, вводить ли помимо него ещё один суррогатный ? Как правило, это НЕ нужно. Если нужно, то тогда, когда на эту таблицу много ссылок из других таблиц. Для дочерних таблиц это не часто бывает. > Архитектор аппелирует к тому что в ORDER_ITEMS уникальность соблюдается по двум > полям ORDER_ID и GOOD_ID и этого как бы вполне достаточно. он прав. > Существуют ли доводы за то что бы использовать уникальный ключ в зависимой > таблице и так ли он необходим? Однозначных доводов нет. Поищи на эту тему, в принципе перетералось не раз. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 18:21 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
>>В смысле в подчинённой таблице есть уже уникальный ключ, вводить ли помимо него ещё один суррогатный ? Ключа нет. Есть только Forein Key ссылающийся на родительскую таблицу, и свойство ID товара. В паре эти два поля дают уникальность записей. С этим я могу согласиться, что этого достаточно. Еще одно утверждение которое я забыл написать, оно наверно главное: в дочерней таблице нельзя делать Primary Key даже по этим двум полям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 18:45 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
аффторв дочерней таблице нельзя делать Primary Key даже по этим двум полям. А это-то ещё почему? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 19:41 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
аффторАрхитектор аппелирует к тому что в ORDER_ITEMS уникальность соблюдается по двум полям ORDER_ID и GOOD_ID и этого как бы вполне достаточно.Плохой пример. Ваш архитектор никогда не видел накладных с одним товаром в двух строчках? да еще с разными ценами (т.е. принудительно объединить нельзя)? Первичный ключ тем-то и хорош, что может быть искусственным и позволяет не закладываться на неизменность внешнего мира или его модели в ТЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 19:48 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovаффторв дочерней таблице нельзя делать Primary Key даже по этим двум полям. А это-то ещё почему? Например, потому, что этот же товар может продаваться по другой цене:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 21:38 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
аффторТолько что возник спор с "арихитектором", делать или нет ключ(ID) в зависимой таблице. Он утверждает что нафиг ненужно. А доводов за то что бы "делать" особо нет. Но мне разработчику так понятней. что есть ключ (ID) в таблице .. ну скажем ORDERS, есть ссылка на него из ORDER_ITEMS. И как бы уникальный ключ (ID) в таблице ORDER_ITEMS не нужен. Архитектор аппелирует к тому что в ORDER_ITEMS уникальность соблюдается по двум полям ORDER_ID и GOOD_ID и этого как бы вполне достаточно. Существуют ли доводы за то что бы использовать уникальный ключ в зависимой таблице и так ли он необходим? Абсолютно необходим, так как Вам только кажется, что таблица "зависимая":) Таблицы совершенно равноправные, не говоря уже о том, что, в Вашей терминологии, таблица может стать "главной", если, например, потребуется детализация записи (партионный учет и др. причины). Ваша главная проблема - использование какого-то странного продукта вместо СУБД. СУБД - это такой программный продукт, в котором автоматически поддерживаются идентификаторы, не являющиеся характеристиками объекта (полями таблицы, в Вашей терминологии). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 21:44 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
аффтор Ключа нет . Есть только Forein Key ссылающийся на родительскую таблицу, и свойство ID товара. В паре эти два поля дают уникальность записей .Так есть ключ или нет? Или два поля дают уникальность записей, потому что приложение данные правильно записывет? Или нет ключа, но есть уникальный констрейн? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 00:11 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
> Он утверждает что нафиг ненужно. Вообще-то тупит. Не нужно, если вы имеете относительно неизменное обособленное подмножество. Например, СИ включает в себя некоторые единицы измерений. Это достаточно редкий случай, здесь необходима только уникальность пар (система измерений, единица измерений). Нужно обязательно, если вы хотя бы теоретически допускаете возможность манипуляций с элементами подмножества или эти элементы имеют (могут иметь) не полностью определенные зависимости. Чтобы не париться, возьмите за правило иметь суррогатный идентификатор. > Существуют ли доводы Разумеется. Самостоятельно сможете сформулировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 01:53 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
аффтор......... Существуют ли доводы за то что бы использовать уникальный ключ в зависимой таблице и так ли он необходим? У меня был дед, старый шахтёр, так он в багажнике своего жигулёнка всегда возил много всякого "ненужного" барахла. В самый неподходящий момент, где-нибудь в тайге, когда у нас или попутчиков возникали проблемы, он тяжело сопя лез в свой багажник и доставал одну из "ненужных" вещей, которая решала все проблемы. Уникальный суррогатный ключ в таблице - это как раз та "ненужная" вешь, которая рано или поздно поможет. Попробую проиллюстрировать. Предположим, Вы сделали, как захотел ваш архитектор, удовлетворились составным ключом в "подчинённой" таблице (слово подчинённая а кавычках, поскольку, как верно заметил Бредятина, подчинённость только в голове). Через какое-то время вполне может возникнуть потребность в "подчинённой" таблице к вашей "подчинённой". Как тогда будете ссылаться, SELECT'том через два поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 06:25 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
аффторКлюча нет. Есть только Forein Key ссылающийся на родительскую таблицу, и свойство ID товара. В паре эти два поля дают уникальность записей. С этим я могу согласиться, что этого достаточно. Чтобы они дали уникальность - надо об этом предупредить СУБД: объявить их ключем (т.е. сказать что они уникальны). Возможно, в некоторых СУБД это называется не ключем (уникальный индекс или еще как), но в теории РБД это называется ключем. Иначе одно и тоже можно занести в БД много раз. Суррогатный ключ, тоже не мешает нарушить уникальность других, которые должны быть уникальными: т.е. ключей в одной табле может быть несколько в общем случае. Если один тока суррогат записи, то что помешает внести одну и туже сущность нескока раз с разными ID? Т.е., возиможно, в вашем случае следует оба ключа отъюзать. У вас нет показаний к ID эту таблу из-за отсутсвия у нее дочерних, а не наличия других уникальных. Но ради единообразия стиля. Это вседа содержит надежду на возможное упрощение как на этапе разработки и сопровождения Например, в приложении в каких-то ситуациях запомнить запись по такому суррогату проще, поскольку уже многократно применялось. Ить он не меняется, а остальные то могли измениться в транзакции: поменяли порядок или отнесли к дугому товару. ID таблы, то врядли поменяется када либо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 08:46 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
Имелоось в виду единообразие стиля: раз уже есть такие суррогаты у некотоых табл, то если они будут у всех, то стиль более однобразый, чем в разных таблах разые подходы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 08:55 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
zeon11... Через какое-то время вполне может возникнуть потребность в "подчинённой" таблице к вашей "подчинённой". Как тогда будете ссылаться, SELECT'том через два поля? Еще один простой пример "подчиненной таблицы" - Бухгалтерские проводки:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 09:52 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
иногда важен порядок строк, вот номер строки + ссылка на главную таблицу и будет ключом таким ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 10:02 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
zeon11Как тогда будете ссылаться, SELECT'том через два поля? А что, у какой-то СУБД с этим есть проблемы?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 11:11 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
> Ключа нет. Есть только Forein Key ссылающийся на родительскую таблицу, и > свойство ID товара. > В паре эти два поля дают уникальность записей. Вот это и есть ключ. > Еще одно утверждение которое я забыл написать, оно наверно главное: в дочерней > таблице нельзя делать Primary Key даже по этим двум полям. наоборот, НУЖНО. В любой таблице должнен быть PK. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 12:05 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
> Первичный ключ тем-то и хорош, что может быть искусственным и позволяет не > закладываться на неизменность внешнего мира или его модели в ТЗ. Первичный ключ тем хорош, что идентифицирует запись в таблице. А тот, кто хорош тем, что ты назвал, это суррогатный первычный ключ. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 12:07 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
> > Абсолютно необходим, так как Вам только кажется, что таблица "зависимая":) > Таблицы совершенно равноправные, не говоря уже о том, что, в Вашей терминологии, > таблица может стать "главной", если, например, потребуется детализация записи Ну, как говорится, дальше пошла Бредятина... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 12:08 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
> Т.е., возиможно, в вашем случае следует оба ключа отъюзать. У вас нет показаний > к ID эту таблу из-за отсутсвия у нее дочерних, а не наличия других уникальных. > Но ради единообразия стиля. Это вседа содержит надежду на возможное упрощение > как на этапе разработки и сопровождения > Например, в приложении в каких-то ситуациях запомнить запись по такому суррогату > проще, поскольку уже многократно применялось. Ить он не меняется, а остальные то > могли измениться в транзакции: поменяли порядок или отнесли к дугому товару. > ID таблы, то врядли поменяется када либо. Про деда -- очень хорошо! Но вы все тут путаете свойства PK и суррогатного PK. Ну и доводы типа "ради единообразия стиля" -- как-то ненаучно выглядит. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 12:10 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
> Имелоось в виду единообразие стиля: раз уже есть такие суррогаты у некотоых > табл, то если они будут у всех, то стиль более однобразый, чем в разных таблах > разые подходы. Например ещё это лишнее поле, которое занимает место, 4-8 байт, а если таблица по миллиарду записей ? 4 гига навыброс ? А ведь это 4-8-16 фильмов... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 12:12 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
MasterZivНапример ещё это лишнее поле, которое занимает место, 4-8 байт, а если таблица по миллиарду записей ? 4 гига навыброс ? А ведь это 4-8-16 фильмов...измерять объём БД в фильмах - это очень нОучно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 12:17 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
MasterZivНапример ещё это лишнее поле, которое занимает место, 4-8 байт, а если таблица по миллиарду записей ? 4 гига навыброс ? А ведь это 4-8-16 фильмов... Правильно. Поэтому на вопрос "нет места на винте, как сжать базу" я всегда отвечаю "оставь базу в покое, лучше порнушку сотри". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 12:18 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
MasterZiv > > Абсолютно необходим, так как Вам только кажется, что таблица "зависимая":) > Таблицы совершенно равноправные, не говоря уже о том, что, в Вашей терминологии, > таблица может стать "главной", если, например, потребуется детализация записи Ну, как говорится, дальше пошла Бредятина... Растете, но очень медленно:) В данном случае больно уж элементарные вещи не понимаете:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 15:08 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
MasterZiv... Но вы все тут путаете свойства PK и суррогатного PK. Существенная неточность - при такой формулировке перед первым PK так же нужно употреблять прилагательное:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 15:11 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
MasterZiv> Имелоось в виду единообразие стиля: раз уже есть такие суррогаты у некотоых > табл, то если они будут у всех, то стиль более однобразый, чем в разных таблах > разые подходы. Например ещё это лишнее поле, которое занимает место, 4-8 байт, а если таблица по миллиарду записей ? 4 гига навыброс ? А ведь это 4-8-16 фильмов... Это проблема "реляционных систем". В СУБД это вообще не поле. Так же полезно посмотреть на физические записи в "реляционных системах" для лучшего понимания:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 15:14 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37926025&tid=1541571]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 531ms |

| 0 / 0 |
