serbanov Ответов: 1

Первичный ключ базы данных состоит из внешнего ключа


Всем привет,

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

Я думал, что смогу сделать стол

Minibar_bill с (id_bill, id_minibar_product, id_client)

И я хотел бы добавить эту информацию в счет-фактуру на основе bill_id...

Как мне это сделать ?

Я имею в виду я хочу иметь что то подобное:

Id_bill(1)
id_minibar_product(1,2,3)
id_client(123)

Где id_bill(1) - будет первой записью счета в базе данных
id_minibar_product(1,2,3) - это продукт 1,2,3, который был потреблен клиентом
id_client(123) - идентификатор клиента, который мы используем в счете-фактуре для сбора данных из клиентской таблицы для печати их в счете-фактуре( я буду использовать C# для пользовательского интерфейса).

Что я уже пробовал:

Я пытался создать БД с полями id_bill и id_product, но я думаю, что это неправильный подход, так как я сделал их составным первичным ключом и не могу добавить их к внешнему ключу в таблице счетов-фактур.

1 Ответов

Рейтинг:
0

Peter Leow

Исходя из вашего описания, вам нужно как минимум три таблицы для начала, например

Table: bill
bill_id (primary key)
bill_table_no
bill_datetime
etc
Table: product
product_id (primary key)
product_price
etc
Table: bill_product (both bill_id and product_id are composite primary key)
bill_id (foreign key to bill table)
product_id (foreign key to product table)
qty
etc
Учить больше Введение в проектирование баз данных[^]


serbanov

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

Проблема,с которой я сталкиваюсь, заключается в том, что у меня есть следующие таблицы Invoice, Client, Room, Minibar, Minibar_bill и Minibar_products.

Что я хочу, так это связать счет-фактуру с minibar_bill, чтобы иметь статус на одном счете-фактуре всех продуктов из мини-бара, которые были куплены клиентом...

Peter Leow

Прочтите предоставленные ссылки, затем выясните отношения между различными таблицами (сущностями), если потребуется, перепроектируйте свои таблицы. Это процесс проб и ошибок, он остановится только тогда, когда дизайн будет соответствовать вашим требованиям.