应用和数据库中的子域

时间:2014-09-18 02:22:57

标签: architecture software-design subdomain

我的问题是关于软件架构,我真的试图更多地关注这一点而不是编码,只需要编码就可以了。

我有一个网站,其中我想以某种方式分离数据,我的意思是,我需要一个数据库来存储与业务相关的所有信息,我还需要存储数据来更改/编辑我的网站的内容(类似于CMS)我希望有一个后端来管理所有业务逻辑但是对于这个后端我还想存储自己的数据,例如用户和权限(App Management表)。

我想要实现的是将这些子域分开松散耦合,如果我想在任何给定时间将业务表移动到另一个网站或应用程序而不拖动其他表(应用程序管理表)和CMS表)。

我认为这是分离事物的好方法,但我不知道如何设计它或编码它,这是我第一次尝试做正确组织的事情。

如果有人能指出我正确的方向,我会很感激。

1 个答案:

答案 0 :(得分:1)

如果要将业务数据与CMS /配置数据分开,可以尝试使用两个单独的数据库:

在第一个数据库中,您可以存储保存业务数据的表和关系。根据您要存储的数据量以及您(或您的客户)访问这些数据的频率,在此处使用成熟的数据库技术(如sql db)是有意义的。 根据您的使用情况,可能需要通过接口(例如,每个Web服务/ webAPI)访问此数据库,以便其他应用程序(或网站)可以访问业务数据。

第二个只保留配置或CMS数据的数据库甚至可以实现为本地数据库(如sqlite或类似数据库),因为存储在那里的数据只能从您的网站或后台访问(并且一致访问)很多用户不太可能)。

通过这种方式,您的业务数据将与配置数据分离,但所有组件(如后台)仍可通过调用您提供的用于访问业务数据库的界面来访问业务对象。