循环或多个级联路径SQL Server

问题描述 投票:-2回答:1

我在此项目中使用dotnet和mvc。

在我的数据模型中,有多个级联路径,因此,标题出现错误。当我尝试将FK从Orders表添加到Business表时,会发生这种情况。

我的数据模型:

  • 用户(UserId pk,...)
  • 业务(BusinessId pk,所有者fk到User(UserId),...)
  • 提供者(ProviderId fk to User(UserId),....)
  • 订单(订单ID pk,业务ID fk到业务(BusinessId),ProviderId fk到Provider(ProviderId),将CustomerId fk更改为User(UserId))。

例如,假设我有一个可以管理多个理发店的网络平台。每个理发店都是我数据库中的一家企业。我站点中的用户可以是客户(用户),理发店所有者(企业所有者)和理发师(提供者)。

现在,如您所知,从用户表到订单表有多个路径。

从订单到提供者的FK设置为​​在删除时设置为null。不过,由于我们拥有FK到企业版(拥有与用户连接的所有者),所以我仍然受阻。

错误:

执行DbCommand失败(16ms)[Parameters = [],CommandType ='Text',CommandTimeout = '30']创建表[顺序]....);

在表'Order'上引入FOREIGN KEY约束'FK_Order_Business_BusinessId'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。

无法创建约束或索引。请参阅先前的错误。

正在寻找诸如更新模型或迁移文件之类的dotnet级别的解决方案。我听说过触发器,但不确定如何通过asp实现它。

可选:我考虑过的想法:将orders表划分为3个表:订单(订单编号pk,时间戳)CustomersOrder(Order_id fk,customer_Id)BusinessOrder(Orderid fk,businessID,ProviderId)

如果你们有什么,我很高兴听到想法:)

sql-server asp.net-mvc
1个回答
0
投票

[我想我没有其他选择,我将Order的模型划分为3个模型:Orders,CustomerOrder,BusinessOrder = 3个表。

© www.soinside.com 2019 - 2024. All rights reserved.