Несколько записей для первичного ключа - PullRequest
0 голосов
/ 02 октября 2018

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

Клиент, имеющий customer_id (первичный ключ) 001, хочет покупать две книги с количеством _ одновременно.Так как customer_id является первичным ключом и в бэкэнде есть три столбца: customer_id, book_name, количество.Как мне этого добиться?Таблица выглядит следующим образом:

customer_id book_name кол-во

001 java 2

После ввода сведений о первой строке я не могу ввести вторую строку как повторяющийся первичный ключвозникает ошибка.

Моя ошибка аналогичным образом связана с системой управления рестораном, где я не могу принять несколько заказов из таблицы table_no, поскольку table_no является первичным ключом.

Существует три таблицы: закуски, main_course, напитки.

table_no (общий атрибут), starter / maincourse / drink, qty.

table_no - это первичный ключ в стартовой таблице и внешние ключи в main_course и таблице напитков.Я могу добавить только данные одной строки в каждой таблице для table_no скажем 1. И теперь я не могу добавить больше данных в следующую строку для той же таблицы нет, потому что происходит ошибка дублирования (из-за первичного ключа).

Я извиняюсь за плохо определенную структуру моей проблемы.Спасибо.

Мой дизайн для этой формы

enter image description here

1 Ответ

0 голосов
/ 02 октября 2018

Я думаю, что ваша схема базы данных должна быть переоценена.

У вас может быть только один клиент (объект клиента) Один клиент может иметь несколько заказов (объект заказа)

customer(
   customer_id PRIMARY KEY auto_increment,
   customer_name VARCHAR
   /* OTHER CUSTOMER SPECIFIC DETAILS */
)

book(
   book_id PRIMARY KEY auto_increment,
   book_name VARCHAR,
   book_isbn VARCHAR
   /* OTHER BOOK SPECIFIC DETAILS */
)

customer_order(
    order_id PRIMARY KEY auto_increment,
    customer_id FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
)

customer_order_items(
    item_id PRIMARY KEY auto_increment,
    customer_order FOREIGN KEY(customer_id) REFERENCE customer_order(order_id)
    book_id FOREIGN KEY(book_id) REFERENCE book(book_id)
    quantity INT
)

Так чтоу клиента может быть много заказов, у заказа может быть много элементов, а у элементов заказа может быть только один элемент / книга.

Первичный ключ ДОЛЖЕН быть уникальным и может использоваться только один раз только в одной таблице, но можетссылки много раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...