|
|
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
MasterZiv > Т.е., возиможно, в вашем случае следует оба ключа отъюзать. У вас нет показаний > к ID эту таблу из-за отсутсвия у нее дочерних, а не наличия других уникальных. > Но ради единообразия стиля. Это вседа содержит надежду на возможное упрощение > как на этапе разработки и сопровождения > Например, в приложении в каких-то ситуациях запомнить запись по такому суррогату > проще, поскольку уже многократно применялось. Ить он не меняется, а остальные то > могли измениться в транзакции: поменяли порядок или отнесли к дугому товару. > ID таблы, то врядли поменяется када либо. Про деда -- очень хорошо! Но вы все тут путаете свойства PK и суррогатного PK. Ну и доводы типа "ради единообразия стиля" -- как-то ненаучно выглядит. Что имеено перепутано в свойствах? Ключ - уникальность, Суррогатный - значение ниче не значит в предметной области. Его польза в некоторых СУБД в связи с предположительной неизменностью. В частности для связи: снижение рисков изменений в дочерних таблицах. Это имелось в виду. Термин РК - старался не упоминать вообще. Единнобразие стиля имеет не научное значенние а стилевое. Если в одной табле суррогат для записи , в другой естесвенный ключ для сущности, в третьей суррогаты от других табл (например, табла для связи многие ко многим), то стиль работы с ними разный. Это может усложнить разработку и сопровождение. Пример, привел пользой от неизменности в проге. В проге что-то делают со значениями записей. Запомнили их суррогаты, если он есть. И например, поменяли значение остальных ключей. Но вседа записи нашли в этом коде и не перепутали: суррогат, то никому не нужен менять его, скорее всего. А если его нет, то несколько сложнее искать, ить все остальное поменяли - код может быть посложнее. Но разумеется это лишь доводы в пользу, не исключающие большей важности в конкретном случае других соображений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 15:24 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
аффторСуществуют ли доводы за то что бы использовать уникальный ключ в зависимой таблице и так ли он необходим? Аудит этой строки (PK может и поменяться !) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 16:56 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
On 08/22/2012 04:08 PM, Бредятина wrote: > Растете, но очень медленно:) В данном случае больно уж элементарные вещи не > понимаете:) Ну, главное-то я понял: > Ну, как говорится, дальше пошла Бредятина... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 17:42 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
MasterZivOn 08/22/2012 04:08 PM, Бредятина wrote: > Растете, но очень медленно:) В данном случае больно уж элементарные вещи не > понимаете:) Ну, главное-то я понял: > Ну, как говорится, дальше пошла Бредятина... Ну покрасуйтесь, покрасуйтесь:) Это нормально (для определенного круга людей), когда существо вопроса непонятно:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 21:17 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
On 08/22/2012 10:17 PM, Бредятина wrote: > Ну покрасуйтесь, покрасуйтесь:) Это нормально (для определенного круга людей), > когда существо вопроса непонятно:) Тролюга ты жирный! Прям не налюбоваться! Не, не дождёшся! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2012, 21:43 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovzeon11Как тогда будете ссылаться, SELECT'том через два поля? А что, у какой-то СУБД с этим есть проблемы?.. Проблем-то как раз и нет, просто я всегда считал, что запрос вида Код: sql 1. 2. всяко лучше, чем запрос вида Код: sql 1. 2. 3. хотя-бы с эстетической точки зрения. P.S. Все приведённые в этом сообщении SQL-запросы вымышленные, всякое совпадение с реальными SQL-запросами случайное, поэтому то, что не использовал в примере "inner join ..." прошу в укор мне не ставить :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 06:58 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
MasterZivOn 08/22/2012 10:17 PM, Бредятина wrote: > Ну покрасуйтесь, покрасуйтесь:) Это нормально (для определенного круга людей), > когда существо вопроса непонятно:) Тролюга ты жирный! Прям не налюбоваться! Не, не дождёшся! Опять ошибаетесь. Почитайте внимательнее про ключи, у них совсем другая функция:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 12:16 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
zeon11, С эстетической точки зрения, зачем в обоих запросах 1=1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 13:12 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
аффторСуществуют ли доводы за то что бы использовать уникальный ключ в зависимой таблице и так ли он необходим? Правило "уникальность по двум полям" в данном случае относится к бизнес-логике. Бизнес-логика - может поменяться в любой момент, и дизайн системы должен обеспечить лёгкость изменений. Пока операция "найди строку зависимой таблицы по ключу" отсутствует или нетипична, дополнительный суррогатный ключ в общем не нужен. Как только необходимость в этой операции назревает (а судя по названию ORDERS, она стопроцентно будет) - каждый день отсутствия ключа будет плодить код, который потом с муками и скрежетом придётся переписывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 01:24 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
AnaceHzeon11, С эстетической точки зрения, зачем в обоих запросах 1=1? Ну, во первых, выборка вида Код: sql 1. без Код: sql 1. сама по себе моветон, поскольку при проектировании БД всегда надо рассчитывать на то, что в таблице может оказаться несколько миллионов записей, и такая выборка подразумевает, что на клиента вы собираетесь "тянуть" всё это многомиллионное барахло. Поэтому, когда в запрос я добавляю строчку Код: sql 1. , я другим читателям моего запроса как-бы поясняю, что эта выборка всего барахла мне действительно нужна, и руки у меня не кривые. Во вторых, для показа ограниченного количества записей пользователю есть два пути: первый путь практикуют "разработчики" пришедшие в БД из таблиц EXCEL'я - вытянуть всё барахло клиенту на компьютер, а потом там, уже на клиенте, всё отфильтровать. Этот путь хорош когда в таблицах несколько тысяч записей, тогда всё шуршит и летает. А когда в таблицах накапливается несколько десятков тысяч записей, то начинаются разговоры, типа СУБД "??????" - говно, железо на сервере - говно, надо всё менять! есть и второй путь, как мне кажется, более перспективный, основная идея которого заключается в следующей сентенции: "возьми только то, что тебе действительно нужно" Вот в этой парадигме и нужна конструкция вида Код: sql 1. если мне нужны данные, например за сегодня, то я просто в конец к тексту запроса добавляю строчку Код: sql 1. . Иными словами, эта конструкция позволяет легко "поднять" выборку данных с сервера по множеству параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 06:16 |
|
||
|
Так ли необходим уникальный ключ в зависимой таблице.
|
|||
|---|---|---|---|
|
#18+
Явление кэпа народу. Можно было ограничиться вот этим: zeon11если мне нужны данные, например за сегодня, то я просто в конец к тексту запроса добавляю строчку Код: sql 1. . Иными словами, эта конструкция позволяет легко "поднять" выборку данных с сервера по множеству параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 06:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37928846&tid=1541571]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
170ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 495ms |

| 0 / 0 |
