Как отобразить первичный ключ состоящий из вторичных?
CREATE TABLE DeviceEvent ( device_id INT, event_id INT, PRIMARY KEY (device_id, event_id), FOREIGN KEY (device_id) REFERENCES Device(device_id), FOREIGN KEY (event_id) REFERENCES NetworkEvent(event_id) ); |
CREATE TABLE DeviceEvent ( device_id INT, event_id INT, PRIMARY KEY (device_id, event_id), FOREIGN KEY (device_id) REFERENCES Device(device_id), FOREIGN KEY (event_id) REFERENCES NetworkEvent(event_id) );
Я это делаю чтобы нельзя было создать дубликат для связующих таблиц
Как мне в диаграмме отобразить первичный ключ ?
Я предполагаю сделать так
Дополнительно:
Да все правильно .
https://egorzimowski.com/2022/05/27/composite-prim...
Мне тут стало интересно, а это всё вообще соответствует 3 нормальной форме ?
про нее надо знать просто в силу образования и понимания как устроены связи.
но в реальном мире денормализация – сплошь и рядом. иначе сервера кипят.
Если предполагаем, что больше ничего нет, а 2 поля это натуральные ключи, то очевидно соответствие 1 форме, а так как нет неключевых атрибутов, то и 2, и 3.
У тебя все правильно
- bruh
- Kotorkovsciy, druh
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для отображения первичного ключа, состоящего из вторичных ключей, в базе данных можно использовать комбинированный ключ. Комбинированный ключ представляет собой уникальный идентификатор, который состоит из нескольких столбцов.
Для создания комбинированного ключа в MySQL, например, необходимо использовать команду CREATE TABLE с указанием столбцов и их типов данных, а затем добавить ограничение PRIMARY KEY для комбинированного ключа.
Пример создания таблицы с комбинированным ключом в MySQL:
CREATE TABLE users ( id INT, department_id INT, PRIMARY KEY (id, department_id) );
В данном примере, первичным ключом является комбинация столбцов id и department_id. Теперь каждая запись в таблице users будет уникально идентифицироваться по этим двум столбцам.
При необходимости получить данные по первичному ключу, состоящему из вторичных ключей, можно использовать запросы SELECT с условием, указывающим значения всех столбцов комбинированного ключа.
Например, для выборки данных из таблицы users по первичному ключу (id=1, department_id=2) можно использовать следующий запрос:
SELECT * FROM users WHERE id=1 AND department_id=2;
Таким образом, использование комбинированного ключа позволяет эффективно управлять уникальными идентификаторами записей в базе данных, состоящими из нескольких столбцов.