Я постараюсь быть кратким и ясным.
Я хочу привязать таблицу под названием «Платежи» к нескольким таблицам, представляющим различные типы услуг, предлагаемых компанией.Довольно просто добавить внешний ключ «Платеж» в каждую из таблиц услуг и связать их с первичным ключом в «Платежах», но проблема практическая:
Я хотел бы создать(Libre Office Base) форма, которая добавляет платеж.Но это потребует не только выполнения INSERT для нескольких таблиц («Платежи» для информации и заданной таблицы «Сервис» для внешнего ключа), но и для добавления первичного ключа во внешнюю таблицу до того, как сама форма создаст этот первичный ключ.,Таким образом, эта опция выглядит не так.
Я попытался сделать это по-другому - поместить внешний ключ «Сервис» в таблицу «Платежи» и вставить туда идентификаторы (первичные ключи) из других таблиц, но сказал:первичные ключи - это простые целые числа, и добавление, скажем, идентификатора ServiceA ID = 1, заставило бы базу данных думать, что объект ID = 1 из всех других таблиц также "оплачен".Я знаю, что мог бы различать идентификаторы между этими таблицами, делая их varchars, а не целыми числами, но тогда я не думаю, что есть способ сделать их автозаполнениями, верно?
Наконец, я подумал, что, возможно, категория«вариант поможет» - выберите тип услуги (например, «Хирургия», «Продажа лекарств», «Экзамен»), а затем введите один из идентификаторов.Это может дать мне возможность разделять идентичные номера в запросах.Однако это не решило бы проблему, заключающуюся в том, что попытка вставить ID = 40, скажем, из «Операций», в то время как в любой из других таблиц такого идентификатора не было, вызвала бы явную ошибку, нарушение отношения, поскольку база данныхэта запись ведет в никуда.
Я действительно изо всех сил пытаюсь найти простое решение из этого беспорядка.Я думаю, что наиболее подходящим вариантом для меня было бы как-то сделать автозаполнение первичных ключей, которые отличаются между таблицами, но на этом этапе я приму любое предложение.Возможно ли вообще в Libre Office Base создать форму, которая бы как-то соответствовала тому, что я хочу?