一个用户数据库服务多个应用程序数

时间:2011-02-10 14:38:34

标签: sql-server database oracle database-design

我正在管理一个相当大的数据库,该数据库的复杂性和设计都来自单个应用程序数据库。现在有一个计划添加第五个应用程序,它带有自己的架构和特定数据。我一直在研究SSO解决方案,但这并不是我所追求的。我的目标是拥有一个客户注册,登录和授权点。

理想情况下,每个应用程序都会请求身份验证并获得多个应用程序的授权,然后应用程序将连接到相应的数据库以进行操作。我没有处理这种程度分离的第一手经验,因为一个数据库多年来一直在完美地搅拌。任何最佳实践论文将不胜感激:)

我会设想一个维护共享数据的核心数据库 - 客户/公司/产品

  1. 核心表和主键 - 如果每个“应用程序”数据库中都有一个较小的复制表,则维护参照完整性。有哪些方法可以在各种数据库之间共享密钥并确保参照完整性?

  2. 复制 - 目前有两个订阅者从生产数据库中提取数据,然后将数据批量分配到DW解决方案进行报告。我是否会走上一条可能导致沮丧的道路?

  3. 数据完整性 - 我如何确保例如: DATABASE_X.PREFERENCES.USER_ID =始终引用a = CORE_DATABASE.USERS.USER_ID

  4. 报告 - 我将跨越什么类型的障碍来将数据从多个数据库复制/转换为一个报告数据库?

  5. 白皮书 - 有人可以在实践中找到对此策略的良好推荐吗?

  6. 由于

4 个答案:

答案 0 :(得分:1)

给你一些网址。横向扩展实现可能会有很大差异,以满足要求,但希望这些可以帮助您。

http://blogs.msdn.com/b/sqlcat/archive/2008/06/12/sql-server-scale-out.aspx

这是2005年的中心,但非常好 http://msdn.microsoft.com/en-us/library/aa479364.aspx#scaloutsql_topic4

这是一个很好的报告解决方案...... http://msdn.microsoft.com/en-us/library/ms345584.aspx

给你一个分析服务:) http://sqlcat.com/whitepapers/archive/2010/06/08/scale-out-querying-for-analysis-services-with-read-only-databases.aspx

答案 1 :(得分:0)

几年前我创建了类似的东西,使用视图和存储过程将Master数据库中的数据导入到从属数据库中。这将允许您相当容易地将这些主表连接到其他从属表中。

答案 2 :(得分:0)

您是否考虑过使用RAC?您可以拥有多个物理数据库但只有一个逻辑数据库。这将解决您的所有完整性问题。而且您可以为节目预留节点。

答案 3 :(得分:0)

不要忘记拥有单独的应用程序并通过webservice(esque)请求链接登录/关闭功能。我已经看到以这种方式分离计费/用户注册系统。虽然规模非常大,但这可能不是一个好主意。