用于处理多个帐户的数据库结构(多租户数据架构)?

用于处理多个帐户的数据库结构(多租户数据架构)?

编写处理单一实体的软件总是很容易。然而,设计处理多个账户/公司的软件需要尽职调查。

我目前正在对处理多个帐户/公司的数据库模式进行初步研究,我想问您是否可以分享一个演示正确模式的网页或开源软件?

编辑:我找到了一个合适的术语,即多租户数据架构。微软有一篇很有用的文章描述了这种方法:http://msdn.microsoft.com/en-us/library/aa479086.aspx

谢谢。

答案1

这仅比“单一实体”稍微复杂一点。让我们假设最坏的情况——多家公司,每家公司都有多个账户。一张公司表。一张账户表,外键为公司 ID。然后每笔交易都有账户 ID 的外键。对于所有其他数据,您需要确定它是属于一家公司、一个账户还是其他账户。即员工只能为一家公司工作(一般来说),因此员工将公司 ID 作为外键。一个部门将属于一家公司,关系相同。

关键在于了解什么属于谁,并建立关系。这听起来可能非常简单,但事实就是如此。

希望使用一些已建立的模式可能会为您节省很多精力,但正是这些努力才能确保获得良好的结果。良好的数据库设计源于提出所有问题 - “员工是否可以为多个部门工作?”“采购费用是否始终由一个部门承担,还是可以分摊成本?”“我们是否需要跟踪员工重新分配的多个批准?”这个问题会一直存在,但如果您不这样做,您的系统将不断让用户失望,并需要无休止地进行修改。

相关内容