Гость
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / первичный ключ(Primary Key) / 25 сообщений из 57, страница 1 из 3
14.07.2020, 09:31
    #39979299
neteurt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Может ли быть в одной таблице несколько Primary Key ?
...
Рейтинг: 0 / 0
14.07.2020, 10:08
    #39979316
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
neteurt
Может ли быть в одной таблице несколько Primary Key ?
Нет, не может. Но может быть один ПК из нескольких полей.
...
Рейтинг: 0 / 0
14.07.2020, 10:13
    #39979319
neteurt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
miksoft,

т.е. это будет составной ключ. как это тогда на схеме будет отображаться, напротив каждого поля будет выставлен pk?
...
Рейтинг: 0 / 0
14.07.2020, 10:21
    #39979323
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
neteurt
miksoft,

т.е. это будет составной ключ. как это тогда на схеме будет отображаться, напротив каждого поля будет выставлен pk?
Наверное, да. Это уже вопрос к тому ПО, в котором вы это смотрите.
...
Рейтинг: 0 / 0
14.07.2020, 11:23
    #39979353
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
neteurt,

PowerDesigner? В данном случае это один PK из трех полей, каждое из которых ссылается на другие таблицы.

Поэтому у вас всего один pk, но три разных внешних ключа fk1, fk2, fk3.

Больше одного PK на таблицу сделать нельзя, но вы можете делать альтернативные ключи (AK, они же unique constraint). Делаются они в свойствах таблицы, на закладке Keys (первичный ключ будет там же).

Ограничения на количество АК обычно есть, но зависят от СУБД.
...
Рейтинг: 0 / 0
15.07.2020, 10:47
    #39979777
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
neteurt,

на картинке, ИМХО, дичь какая-то. Составно pk, завязанный на разные fk?
...
Рейтинг: 0 / 0
15.07.2020, 11:07
    #39979802
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
KreatorXXI
neteurt,

на картинке, ИМХО, дичь какая-то. Составно pk, завязанный на разные fk?

И в чём дичь?
...
Рейтинг: 0 / 0
15.07.2020, 11:37
    #39979816
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
KreatorXXI
на картинке, ИМХО, дичь какая-то. Составно pk, завязанный на разные fk?

Обычная тернарная связь между тремя разными сущностями. Например, "команда - чемпионат - стадион"
...
Рейтинг: 0 / 0
15.07.2020, 12:39
    #39979865
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Обычно у таблиц связи первичный ключ суррогатный или вообще отсутствует.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.07.2020, 12:56
    #39979879
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Dimitry Sibiryakov

Обычно у таблиц связи первичный ключ суррогатный или вообще отсутствует.

Да ну? Как так может "ключ отсутствовать". Таблицы связи как раз обычно и состоят только из одного составного , а не суррогатного ключа.
...
Рейтинг: 0 / 0
15.07.2020, 13:18
    #39979896
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
fkthatКак так может "ключ отсутствовать".

Легко. Если контроль уникальности связи не нужен или (как чаще всего и происходит) мешает
- его убивают.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.07.2020, 13:35
    #39979908
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Dimitry Sibiryakov
Обычно у таблиц связи первичный ключ суррогатный или вообще отсутствует.

Судя по этой реплике, у Вас какая-то очень необычная реальность.

Dimitry Sibiryakov
или (как чаще всего и происходит) мешает

Видал я танцоров, которым ограничения целостности мешают :)
...
Рейтинг: 0 / 0
15.07.2020, 13:44
    #39979916
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
softwarerВидал я танцоров, которым ограничения целостности мешают :)

А таблицы связей у которых завелись дополнительные атрибуты, делающие связь неуникальной?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.07.2020, 14:04
    #39979932
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Dimitry Sibiryakov

softwarerВидал я танцоров, которым ограничения целостности мешают :)

А таблицы связей у которых завелись дополнительные атрибуты, делающие связь неуникальной?..

Тогда суррогатный, т.к. это по сути отдельная сущность. Но я такое редко видел, хотя аттрибуты дополнительные часто бывают.
...
Рейтинг: 0 / 0
15.07.2020, 14:15
    #39979943
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
А ещё когда дело доходит до конкретного DDL, конкретная СУБД хочет создать для первичного
ключа конкретный индекс. И вот тут-то теория иногда начинает нервно озираться, ища пути к
отступлению.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.07.2020, 14:42
    #39979956
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Dimitry Sibiryakov
А таблицы связей у которых завелись дополнительные атрибуты, делающие связь неуникальной?..

Вот прямо-таки неуникальной? Я очень редко видел необходимость в таблицах с неуникальными строками. Не уверен, что вообще видел. Чаще добавляемый атрибут просто должен войти в уникальный ключ.
...
Рейтинг: 0 / 0
15.07.2020, 14:56
    #39979966
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
softwarer
Вот прямо-таки неуникальной? Я очень редко видел необходимость в таблицах с неуникальными строками. Не уверен, что вообще видел. Чаще добавляемый атрибут просто должен войти в уникальный ключ.

Представить себе такое можно, но это будет уже скорее не связь, а отдельная сущность.
...
Рейтинг: 0 / 0
15.07.2020, 15:16
    #39979970
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
softwarer
Dimitry Sibiryakov
А таблицы связей у которых завелись дополнительные атрибуты, делающие связь неуникальной?..

Вот прямо-таки неуникальной? Я очень редко видел необходимость в таблицах с неуникальными строками. Не уверен, что вообще видел. Чаще добавляемый атрибут просто должен войти в уникальный ключ.


Много случаев, когда в таблице связи N:N нужны дополнительные поля с информацией (да пусть и просто комментарий) и смысла включать эти поля в PK нет никакого (как минимум по той простой причине, что они могут редактироваться).

Делать не суррогатные ПК в таблице связей N:N на мой взгляд скорее антипатерн, чем best practics. На проблемы с составмыми ключами нарывался, а вот достоинств (кроме экономии места под суррогатный ключ) лично я не вижу.

IMHO & AFAIK
...
Рейтинг: 0 / 0
15.07.2020, 15:24
    #39979975
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Leonid Kudryavtsev
На проблемы с составмыми ключами нарывался, а вот достоинств (кроме экономии места под суррогатный ключ) лично я не вижу.

Если у меня таблицы users и roles и таблица-связка M-2-M user_roles то за каким лешим мне кроме составного ключа (user_id, role_id) добавлять туда еще и суррогатный? Какие проблемы могут тут быть из-за составного? Это какая-то чисто, я замечал, есть у многих привычка - не приходя в сознание первым делом пихать в любую таблицу без разбора суррогатный ключ.
...
Рейтинг: 0 / 0
15.07.2020, 15:45
    #39979989
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
произведение - персона (автор) - роль в данном произведении

Пусть БД фильмов, роли могут быть: продюсер, режиссер, звукооператор, композитор и так далее
...
Рейтинг: 0 / 0
15.07.2020, 15:55
    #39979997
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Leonid Kudryavtsev
На проблемы с составмыми ключами нарывался, а вот достоинств (кроме экономии места под суррогатный ключ) лично я не вижу.

Не надо создавать дополнительный индекс и не надо делать Key Lookup во время запроса - это можно отнести в достоинства?
...
Рейтинг: 0 / 0
15.07.2020, 16:03
    #39980005
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Leonid Kudryavtsev
Пусть БД фильмов, роли могут быть: продюсер, режиссер, звукооператор, композитор и так далее

И чем же здесь плох составной ключ?
...
Рейтинг: 0 / 0
15.07.2020, 16:04
    #39980009
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Если у Вас все связи N:N вида

TABLE1_ID number
TABLE2_ID number

я Вам завидую ))). В тех системах, которые я вижу/видел, такой "классический" случай скорее редкость и исключение. В 90% таблиц-связей есть еще какая-то информация, часто, там ее даже __больше__, чем в "основных" таблицах
...
Рейтинг: 0 / 0
15.07.2020, 16:05
    #39980011
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
softwarer
И чем же здесь плох составной ключ?

И какие колонки в составной ключ?
особенно если роль - текстовое поле, или и то и другое (и справочник и текстовое поле)
...
Рейтинг: 0 / 0
15.07.2020, 16:12
    #39980014
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
первичный ключ(Primary Key)
Leonid Kudryavtsev
И какие колонки в составной ключ?

Произведение, персона, роль. Это если, конечно, Вы не хотите хранить информацию о том, что Вася Пупкин - три раза режиссёр фильма "Пупырышки".

Leonid Kudryavtsev
особенно если роль - текстовое поле

Это чтобы "режиссёр" можно было написать с грамматической ошибкой? Впрочем, это отдельная странность, а с точки зрения ключа - ну текстовое и текстовое, вопрос прежний.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / первичный ключ(Primary Key) / 25 сообщений из 57, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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