powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Так ли необходим уникальный ключ в зависимой таблице.
11 сообщений из 36, страница 2 из 2
Так ли необходим уникальный ключ в зависимой таблице.
    #37926494
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> Т.е., возиможно, в вашем случае следует оба ключа отъюзать. У вас нет показаний
> к ID эту таблу из-за отсутсвия у нее дочерних, а не наличия других уникальных.
> Но ради единообразия стиля. Это вседа содержит надежду на возможное упрощение
> как на этапе разработки и сопровождения
> Например, в приложении в каких-то ситуациях запомнить запись по такому суррогату
> проще, поскольку уже многократно применялось. Ить он не меняется, а остальные то
> могли измениться в транзакции: поменяли порядок или отнесли к дугому товару.
> ID таблы, то врядли поменяется када либо.


Про деда -- очень хорошо! Но вы все тут путаете свойства PK и суррогатного
PK. Ну и доводы типа "ради единообразия стиля" -- как-то ненаучно выглядит.

Что имеено перепутано в свойствах? Ключ - уникальность, Суррогатный - значение ниче не значит в предметной области. Его польза в некоторых СУБД в связи с предположительной неизменностью. В частности для связи: снижение рисков изменений в дочерних таблицах.
Это имелось в виду.
Термин РК - старался не упоминать вообще.
Единнобразие стиля имеет не научное значенние а стилевое. Если в одной табле суррогат для записи , в другой естесвенный ключ для сущности, в третьей суррогаты от других табл (например, табла для связи многие ко многим), то стиль работы с ними разный. Это может усложнить разработку и сопровождение.

Пример, привел пользой от неизменности в проге. В проге что-то делают со значениями записей. Запомнили их суррогаты, если он есть. И например, поменяли значение остальных ключей. Но вседа записи нашли в этом коде и не перепутали: суррогат, то никому не нужен менять его, скорее всего. А если его нет, то несколько сложнее искать, ить все остальное поменяли - код может быть посложнее.

Но разумеется это лишь доводы в пользу, не исключающие большей важности в конкретном случае других соображений.
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37926747
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
аффторСуществуют ли доводы за то что бы использовать уникальный ключ в зависимой таблице и так ли он необходим?

Аудит этой строки (PK может и поменяться !)
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37926867
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 08/22/2012 04:08 PM, Бредятина wrote:

> Растете, но очень медленно:) В данном случае больно уж элементарные вещи не
> понимаете:)

Ну, главное-то я понял:

> Ну, как говорится, дальше пошла Бредятина...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37927100
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOn 08/22/2012 04:08 PM, Бредятина wrote:

> Растете, но очень медленно:) В данном случае больно уж элементарные вещи не
> понимаете:)

Ну, главное-то я понял:

> Ну, как говорится, дальше пошла Бредятина...

Ну покрасуйтесь, покрасуйтесь:) Это нормально (для определенного круга людей), когда существо вопроса непонятно:)
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37927121
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 08/22/2012 10:17 PM, Бредятина wrote:

> Ну покрасуйтесь, покрасуйтесь:) Это нормально (для определенного круга людей),
> когда существо вопроса непонятно:)

Тролюга ты жирный! Прям не налюбоваться!
Не, не дождёшся!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37927334
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovzeon11Как тогда будете ссылаться, SELECT'том через два поля?
А что, у какой-то СУБД с этим есть проблемы?..


Проблем-то как раз и нет, просто я всегда считал, что запрос вида

Код: sql
1.
2.
select * from tableA a, TableB b where a.IDtableA=b.IDtableA
      and 1=1



всяко лучше, чем запрос вида

Код: sql
1.
2.
3.
select * from tableA a, TableB b where a.horseradish=b.horseradish
  and a.radish=b.radish
      and 1=1


хотя-бы с эстетической точки зрения.

P.S.
Все приведённые в этом сообщении SQL-запросы вымышленные, всякое совпадение с реальными SQL-запросами случайное, поэтому то, что не использовал в примере "inner join ..." прошу в укор мне не ставить
:-)
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37927759
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOn 08/22/2012 10:17 PM, Бредятина wrote:

> Ну покрасуйтесь, покрасуйтесь:) Это нормально (для определенного круга людей),
> когда существо вопроса непонятно:)

Тролюга ты жирный! Прям не налюбоваться!
Не, не дождёшся!

Опять ошибаетесь. Почитайте внимательнее про ключи, у них совсем другая функция:)
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37927848
AnaceH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zeon11,

С эстетической точки зрения, зачем в обоих запросах 1=1?
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37928800
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аффторСуществуют ли доводы за то что бы использовать уникальный ключ в зависимой таблице и так ли он необходим?
Правило "уникальность по двум полям" в данном случае относится к бизнес-логике. Бизнес-логика - может поменяться в любой момент, и дизайн системы должен обеспечить лёгкость изменений.

Пока операция "найди строку зависимой таблицы по ключу" отсутствует или нетипична, дополнительный суррогатный ключ в общем не нужен. Как только необходимость в этой операции назревает (а судя по названию ORDERS, она стопроцентно будет) - каждый день отсутствия ключа будет плодить код, который потом с муками и скрежетом придётся переписывать.
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37928843
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnaceHzeon11,

С эстетической точки зрения, зачем в обоих запросах 1=1?

Ну, во первых, выборка вида

Код: sql
1.
select * from TableA a

без
Код: sql
1.
where



сама по себе моветон, поскольку при проектировании БД всегда надо рассчитывать на то, что в таблице может оказаться несколько миллионов записей, и такая выборка подразумевает, что на клиента вы собираетесь "тянуть" всё это многомиллионное барахло.
Поэтому, когда в запрос я добавляю строчку
Код: sql
1.
where 1=1

, я другим читателям моего запроса как-бы поясняю, что эта выборка всего барахла мне действительно нужна, и руки у меня не кривые.

Во вторых, для показа ограниченного количества записей пользователю есть два пути:

первый путь практикуют "разработчики" пришедшие в БД из таблиц EXCEL'я - вытянуть всё барахло клиенту на компьютер, а потом там, уже на клиенте, всё отфильтровать. Этот путь хорош когда в таблицах несколько тысяч записей, тогда всё шуршит и летает. А когда в таблицах накапливается несколько десятков тысяч записей, то начинаются разговоры, типа СУБД "??????" - говно, железо на сервере - говно, надо всё менять!

есть и второй путь, как мне кажется, более перспективный, основная идея которого заключается в следующей сентенции: "возьми только то, что тебе действительно нужно"
Вот в этой парадигме и нужна конструкция вида
Код: sql
1.
where 1=1


если мне нужны данные, например за сегодня, то я просто в конец к тексту запроса добавляю строчку
Код: sql
1.
and a.WorkDate='NOW'

. Иными словами, эта конструкция позволяет легко "поднять" выборку данных с сервера по множеству параметров.
...
Рейтинг: 0 / 0
Так ли необходим уникальный ключ в зависимой таблице.
    #37928846
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Явление кэпа народу.

Можно было ограничиться вот этим:
zeon11если мне нужны данные, например за сегодня, то я просто в конец к тексту запроса добавляю строчку
Код: sql
1.
and a.WorkDate='NOW'


. Иными словами, эта конструкция позволяет легко "поднять" выборку данных с сервера по множеству параметров.
...
Рейтинг: 0 / 0
11 сообщений из 36, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Так ли необходим уникальный ключ в зависимой таблице.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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