如何为账户指明主要客户信息-客户关系

How to indicate primary customer information for accounts - customers relationship

问题 - 为满足上述要求,主要账户持有人的信息可以保存在哪里?

我在下面提出了一些想法,但如果方向正确,我不会。

我可以使用其他解决方案吗?

解决方案 1:在 link table 中保留 IsPrimary 列以显示哪个客户是 PrimaryHolder。

问题 - 无法将其控制为 1 行。 2 位客户可能被错误地标记为任何帐户的主要客户。

create table Accounts (
    AccountId INT
)

create table Customers (
    CustomerId INT
)

create table AccCustLink (
    AccCustLinkId INT,
    AccountId INT,
    CustomerId INT,
    IsPrimary BOOLEAN // this shows if customer is primary

)

解决方案 2:将主要持有人保留在主要 table。仅对联名账户持有人使用 link table。

问题 - “账户 - 客户”link 被分成多个 tables 并且 2 tables 有关于哪些客户与账户相关联的信息。

create table Accounts (
    AccountId INT,
    PrimaryCustomerId INT, // this has primary holder id and will be restricted to one data point.
    PRIMARY(AccountId)
)

create table Customers (
    CustomerId INT
)

create table AccJointHolders (
    AccCustLinkId INT,
    AccountId INT,
    CustomerId INT // only joint account holders will be present in this table.
)

我认为解决方案 2 只要对帐户有唯一约束,我就会在帐户 table 中使用。所以不会有 2 个人意外成为主账户持有人