数据库开发及 Azure SQL 全面解析
1. 数据库选择与业务规则放置
在数据库开发中,重新创建一个新的数据库管理系统并非明智之举,这就如同重新发明轮子,即便新轮子能适应各种地形,但它与现有轮子有相同的优缺点,还增加了使用的复杂性,所以更好的做法是学会充分利用现有的数据库。
业务规则应置于应用程序中,而非数据库。不过,业务规则的定义并不简单。业务规则通常作用于数据,包括处理、读取、更改和创建数据等。所有的数据操作应推送到数据所在的数据库中。例如,创建新用户时需要在用户表中插入一行记录,该操作应在数据库内部执行,而非在应用程序中编写复杂且难以维护的代码,将数据操作逻辑和业务逻辑混为一谈。
当需要进行数据聚合,如计算复杂的月末业务关键绩效指标(KPI)报告时,由于数据引力的存在,将复杂的计算移至数据所在之处,比将数据移动到业务层要容易得多。在分布式系统中,每个系统可能都要访问和修改相同的数据,如果在每个系统中都实现数据操作逻辑,会需要复杂的分布式协调。而让数据库来协调数据访问,可以避免这种复杂性。通过明确业务规则和数据操作的边界,可以实现关注点的清晰分离,使解决方案更清晰、简单,更易于创建、维护和演进,也更具敏捷性。
2. 多语言持久化的挑战
多语言持久化在微服务架构成为主流的近几年逐渐为人所知。其理念是每个服务应使用最适合其任务的数据库技术,如关系型、键值型、图数据库、文档数据库等。
理论上,这一理念完全正确,但实际操作中存在巨大挑战。首先,如何集成和保持不同系统中数据的一致性,以确保数据无错误并可用于决策,是一个难题。其次,如果使用不同的数据库存储数据,开发人员需要充分了解这些不同的技术,否则安全、一致性和性能问
超级会员免费看
订阅专栏 解锁全文
1546

被折叠的 条评论
为什么被折叠?



