敏捷开发下, 由 User Story 中设计: 保证数据一致性的数据库表结构
2016-04-16 11:39
363 查看
过往的数据库设计思维∵强调整体,主要是期望借由所谓的整体,使的数据库设计可保证数据的 Integrity。
但这样的思维,在面向对象的世界里,往往因类设计时,类责任的不明确,而因为对象的存取破坏了数据的 Integrity。
所以,数据库设计真正的重点,不在所谓的 “整体”。而在 “明确”。
我在产品级敏捷,设计了一个实践;Story 场景树。
借由 Story 场景树,分析每个 Story下的场景,明确界定 Entity 校验的纬度,所以,每个 Entity 的定义便是明确的,每个 Entity 间的关系也是明确的。
所以,由各 Story 所分析出的 Entity,Value Object
便可形成与数据表相匹配的数据表结构,以提升数据的 Integrity。
Story 场景树,轻量级,可视化,可适用于敏捷开发下的团队协作。
Story 场景树主要是分析:Story 内部的活动,活动后所生成的 Entity,Entity
校验的纬度,Story 调用的接口。
所以,从 Story 场景树中,自然便会得知各 Entity 是从何而来?该如何定义(校验)?对外的依赖为何?
有了上述的信息,自然可分析出各 Entity 间是 “关联”
或 “包含”的关系,而可分析出数据表中的 Primary/Forient Key。
上述,是从领域 “广度”
的面向,由 Entity 间设计数据表 (Table)。
另一方面,各 Entity 都会有 Properties
来描述。Properties 便会形成 Value Objecs。而 Entity
的 Value Objects 便形成由领域 “深度”,设计数据表结构;也许就会形成 record 的字段设计。
当然,更讲究的会再进行正规化的设计。
但这样的思维,在面向对象的世界里,往往因类设计时,类责任的不明确,而因为对象的存取破坏了数据的 Integrity。
所以,数据库设计真正的重点,不在所谓的 “整体”。而在 “明确”。
我在产品级敏捷,设计了一个实践;Story 场景树。
借由 Story 场景树,分析每个 Story下的场景,明确界定 Entity 校验的纬度,所以,每个 Entity 的定义便是明确的,每个 Entity 间的关系也是明确的。
所以,由各 Story 所分析出的 Entity,Value Object
便可形成与数据表相匹配的数据表结构,以提升数据的 Integrity。
Story 场景树,轻量级,可视化,可适用于敏捷开发下的团队协作。
Story 场景树主要是分析:Story 内部的活动,活动后所生成的 Entity,Entity
校验的纬度,Story 调用的接口。
所以,从 Story 场景树中,自然便会得知各 Entity 是从何而来?该如何定义(校验)?对外的依赖为何?
有了上述的信息,自然可分析出各 Entity 间是 “关联”
或 “包含”的关系,而可分析出数据表中的 Primary/Forient Key。
上述,是从领域 “广度”
的面向,由 Entity 间设计数据表 (Table)。
另一方面,各 Entity 都会有 Properties
来描述。Properties 便会形成 Value Objecs。而 Entity
的 Value Objects 便形成由领域 “深度”,设计数据表结构;也许就会形成 record 的字段设计。
当然,更讲究的会再进行正规化的设计。
相关文章推荐
- 模型,保存数据到数据库
- ORACLE数据库用户账号处于expired状态如何处理
- mysql忘记root密码
- mysql二进制日志文件中的事件
- 数据库理论之ACID和BASE的比较
- Oracle操作
- 完美解决MySQL安装后无法远程连接的问题
- MYSQL约束
- c# mysql
- Redis中文乱码问题的解决
- SQLite3
- iOS开发:用SQLite3存储和读取数据
- iOS开发数据库篇—SQLite简单介绍
- Mysql 二进制免编译安装
- MYSQL之数据类型
- MySQL基本操作
- Windows安装Mysql
- mysql group by的特殊性
- Mysql select语句设置默认值
- LeetCode 175 -Combine Two Tables ( MYSQL )