Chr*_*ris 5 sql database sql-server database-design sql-server-2008
SQL Server 2008数据库设计问题.
我正在定义一种服务的体系结构,其中站点用户可以管理他们拥有的多个网站上的大量数据(平均100MB,每个站点最多1GB).我正在考虑是否拆分数据库,以便核心站点管理表(用户,付款,联系方式,登录详细信息,产品等)保存在一个数据库中,与客户自己的网站相关的数据库是单独保存的数据库.
我看到了一个可能的好处,我可以分发硬件架构,为网站数据库中的繁重工作提供更多的肉,使网站管理数据库处于更合适的区域.但我也意识到失去了通过外键直接将网站与客户联系起来的能力(据我所知,这不能跨数据库完成?).
因此,问题有两个 - 一般来说,这种场景中的数据应该分成多个数据库,还是应该全部保存在一个数据库中?
如果将其拆分为多个,是否有建议的方法来保护系统在数据库层的完整性和安全性,以确保两者之间存在很强的关系?
谢谢你的帮助.
这个问题以及我的回答可能接近主观的灰线,但至少我认为将“管理”表分离到他们自己的数据库中是常见的做法,因为这听起来像是你在做什么。如果您可以将客户端绑定到特定的服务器和数据库实例,那么通过拥有单独的数据库实例,它为添加服务器以添加客户端打开了一些简单的路径。如果您变得太大,单个数据库将需要您使用各种聚类方法。
[编辑] 尽早建立每个客户都有自己的数据库的想法也只是为您在易于进行结构和组织更改时的开发方式奠定了基调。发现 2 年后你需要这样做会变得更加痛苦。过去我曾多次使用 split dbs,只要您能确定上下文是什么,这真的不难处理。在这里,您似乎已经知道客户就是上下文。
就像我说的那样,只有我的两分钱,你可能对这一点很主观。