Questions tagged «design-pattern»

1
多租户SQL Server数据库中的复合主键
我正在使用ASP Web API,实体框架和SQL Server / Azure数据库构建多租户应用程序(单个数据库,单个架构)。此应用将由1000-5000个客户使用。所有表都将具有TenantId(Guid / UNIQUEIDENTIFIER)字段。现在,我使用的是ID(Guid)的单字段主键。但是,仅使用Id字段,我就必须检查用户提供的数据是否来自/正确的租户。例如,我有一个SalesOrder包含CustomerId字段的表。每次用户发布/更新销售订单时,我都必须检查是否CustomerId来自同一租户。情况变得更糟,因为每个租户可能都有多个出口。然后我要检查TenantId和OutletId。这确实是维护的噩梦,并且对性能不利。 我正在考虑将一起添加TenantId到主键中Id。并可能也添加OutletId。所以在主键SalesOrder表将是:Id,TenantId,和OutletId。这种方法的缺点是什么?使用复合键会严重损害性能吗?复合键顺序重要吗?我的问题有更好的解决方案吗?

3
如何避免3个表之间的循环依赖关系(循环引用)?
我有3张桌子: 人 发布 喜欢 当我设计ER模型时,它具有循环依赖性: 1:N 人-------- <帖子 1:N 发表---------- <喜欢 1:N 人-------- <喜欢 逻辑是: 1人可以发表很多帖子。 1个帖子有很多赞。 1个人可以喜欢许多帖子(创建的人不能喜欢自己的帖子)。 如何删除这种循环设计?还是我的数据库设计错误?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.