Я предполагаю, что моделируемая организация является банком.
Учитывая данные примера, кажется, что ID ветви, Имя ветви и BSB все связаны с определенной веткой, и каждый из столбцов является ключом-кандидатом (может быть «первичным ключом»).
Одна из таблиц 3NF должна быть:
Branch: Branch ID, Branch Name, BSB — Branch ID nominated as PK
Для каждого клиента записываются только два бита данных: имя клиента и его идентификатор клиента. Поскольку имена могут повторяться, мы будем считать, что идентификатор клиента является ключом-кандидатом.
Одна из таблиц 3NF должна быть:
Customer: Customer ID, Customer Name — Customer ID nominated as PK
Учитывая, что первые две строки данных и последние все идентифицируют / c 9047 1234, но информация о типе счета отличается, номер / c не является уникальным во всех отделениях банка. На основании представленных данных комбинация номера счета и идентификатора филиала должна быть уникальной (и, следовательно, PK) Однако одним и тем же аккаунтом могут пользоваться несколько клиентов - первые две строки данных.
Следовательно, одна из таблиц 3NF должна быть:
Account: Account Number, Branch ID, Account Type, Account Balance, Account Type, Account Name
— PK(Account Number, Branch ID)
А другой должен отслеживать клиентов, связанных с данным номером счета. Опять же, показанная таблица - «все ключи», где Account Number
и Branch ID
образуют один внешний ключ, а Customer ID
- другой.
Account_Customers: Customer ID, Account Number, Branch ID
Итак, я думаю, вам нужно 4 таблицы. Столбцы первичного ключа отмечены звездочкой.
- Филиал: ID филиала *, Название филиала, BSB
- Заказчик: идентификатор клиента *, имя клиента
- Учетная запись: номер счета *, идентификатор филиала *, тип учетной записи, остаток на счете, тип учетной записи, имя учетной записи
- Account_Customers: идентификатор клиента *, номер счета *, идентификатор филиала *