我们正在(重新)设计一个公司信息系统。对于数据库设计,我们正在探索以下选项:
选项1->拥有所有功能的单个CompanyBigDatabase,
选项2->公司中的几个数据库(例如,HRD_DB、FinanceDB、MarketingDB),然后通过应用层进行同步。EmployeeTable是人力资源开发公司所有的,如果财务部门想要提到员工,它会通过web服务从HRD_DB查询EmployeeTable。
最佳实践是什么?好处和坏处是什么?我们希望它具有高可用性和合理的可靠性。选项1是否需要为此进行群集和所有操作?大公司和大学(如丰田、三星、斯坦福大学、麻省理工学院等)总是选择选项1吗?
我在许多DB教科书中寻找,但我找不到关于这个主题的充分解释。
欢迎任何想法、提示、链接或建议。谢谢。
发布于 2013-05-04 15:21:13
我做这类工作已经有20年了。企业架构是用来描述这一点的一个术语。如果你正在问这个问题,在一个真实的企业场景中,我会建议你去获取建议。如果这是一个统一的问题,那么有很多事情需要考虑:
或Hosted
整个方法论都是为了支持这样做的项目而编写的。你可能会得到很多变量的答案。即使在如何加权特征和结果上达成一致也是困难的。
这是一个很大的问题,你可以把它写对一本书。它就像是一个两段的问题,我看到10个人花了一个月的时间把一个商业案例放在一起做X。这就是成本和规划各种选择。而没有选择最终的方法。
所以我没有直接回答你的问题...我的朋友是一个严肃的研究项目,而不是一个真正的StackOverflow问题。
发布于 2013-05-04 11:29:41
没有唯一的答案。这取决于许多其他因素,如数据库负载,应用程序架构,可伸缩性等。我的建议是从最简单的方式开始(单个数据库),并根据需要进行更改。
单一数据库有它的优点:更简单的连接,引用完整性,单一备份。只有当你有有效的理由/需要时,才能单独的数据片段。
发布于 2013-05-04 11:32:51
在我看来,更合适的做法是将数据库标准化,并根据部门在整个公司范围内建立几个数据库。这将允许您在存储、检索和更新信息以及根据部门类型或用户类型向用户提供访问权限方面更有效地管理数据。您还可以提供数据库的不同视图。管理数据将变得容易得多。
https://stackoverflow.com/questions/16370259
复制相似问题