删除 SQL 服务器中的外键和引用表

Remove foreign key and reference tables in SQL Server

我有四个表 StoreEmployeeCustomerAddress。我已将前三个表链接到 Address。现在我想删除这个 FK 并将这些表引用到 Address。我该怎么做?

Table结构:

商店:

    StoreID(PK), BranchName

员工:

    EmpID(PK), Name

客户:

    CustID(PK), Name

地址:

    AddID(PK), 
    ID(FK to Store.StoreID, Employee.EmpID, Customer.CustID), 
    AddressDetail

我想删除 Address.ID 上的 FK 并仅引用三个表。

您可以使用 ALTER TABLE 语句删除 FOREIGN KEY 约束。例如

ALTER TABLE [Address] DROP CONSTRAINT [FK_Address_Store]

要删除列,再次使用 ALTER TABLE 语句。

ALTER TABLE [Address] DROP COLUMN [ID]

您尝试实施的数据模型一点也不清晰。有多少地址可以与客户相关?只有一个,还是多个?同一个地址可以与客户和员工相关联吗?一个特定的地址可以与多个客户相关吗?

在我的实体关系模型中,"Address" 通常是复合属性,而不是实体。通常,地址是一个多值属性(例如,一位客户可以有多个地址,或多个电话号码)。有时,地址是特定类型的地址(送货地址、账单地址、办公室地址、家庭住址),就像 phone 号码可以是一种类型(主要、移动、办公室、传真等)一样

在不了解数据模型的情况下,不可能就您应该对数据库表进行哪些更改以实施该模型向您提出建议。