数据库设计支持多种不同的应用程序

时间:2015-10-19 19:04:44

标签: sql-server api database-design

我有一个数据库设计问题,我希望得到一些意见。

环境是MS SQL Server,使用ASP.NET WEB API构建API(尽可能使用实体框架)

这个概念是有几个不同的应用程序将利用API。每个应用程序的功能和数据都大不相同。但是,每个应用程序中都有几个不同的(查找)数据。当然,一种解决方案是拥有一个具有许多表的巨大数据库,这当然可以保持参照完整性,但只是感觉到了#34;我错了,因为每个应用程序的目的都不同。

另一种选择是设置几个不同的DB。一个用于每个应用程序的特定数据,然后是用于共享(查找)数据的数据库。这当然会将引用完整性抛到窗外。这可能并不重要,而且那只是老人"在我身上。

我意识到"数据存储在哪里"对于客户端应用程序来说真的不是问题,因为他们将利用API。但是API将关注数据存储。在这一点上,我试图就如何最好地构建数据库以符合RDBMS系统的现代最佳实践获得一些意见。

感谢您提出的所有建议。

-c

1 个答案:

答案 0 :(得分:0)

(评论太大了):

如果您定义每个应用程序之间的逻辑边界(在实践中,而不是理论上),您可能会发现您已经回答了自己的问题。参照完整性仅影响相关表,因此如果每个应用程序数据不同,那么这应该不是问题。

如果为每个应用程序使用EF上下文,则共享查找的上下文是一种方法。 Julie Lerman在这个MSDN article中解释了EF Bounded Contexts(不要使用一个大规模的EF上下文,将其分解),但最终一个实用的规范化关系数据库应该可以满足您的要求。