敏捷开发下, 由 User Story 中设计: 保证数据一致性的数据库表结构

过往的数据库设计思维∵强调整体,主要是期望借由所谓的整体,使的数据库设计可保证数据的 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 的字段设计。

当然,更讲究的会再进行正规化的设计。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PHP在线

程序员如何做到「编程速度又快,Bug 数量又少」?

最近看到一个Quora中的回答,答到心坎上。译文引用自伯乐在线:   三个程序员被要求穿过一片田地,到达另一侧的房子。   菜鸟程序员目测了一下之间很短的距离,...

2646
来自专栏Java架构

资深架构师谈Java——最牛逼的编程语言

有些人问我,在现有的语言里面,有什么好的推荐?我说:“Java。” 他们很惊讶:“什么?Java!” 所以我现在来解释一下。

2317
来自专栏iKcamp

翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》- 第 1 章:为什么使用函数式编程?

原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 第 1 章:为什么使用函数式编程...

2295
来自专栏PPV课数据科学社区

重大改革!教育部将Python纳入全国计算机等级考试科目

据媒体报道,教育部考试中心近日发布了“关于全国计算机等级(NCRE)体系调整”的通知,决定自2018年3月起,在计算机二级考试加入了“Python语言程序设计”...

2525
来自专栏与神兽党一起成长

在MySQL中处理组织层次(中文路径)

假设有这样的组织层次,“某某局”,“某某局>某某部”,“某某局>某某部>某某下属组织”, “某某局”是一级组织所以他的组织层次就是他自己的组织名字,而类似“某...

1053
来自专栏极限编程

解析简单设计原则

在 我的简单设计价值观 一文中,我分享了我在实践中形成对简单设计的理解。而提到价值观,平时跟同事讨论某个技术实践的时候,一旦触碰到价值观,我就会很谨慎,因为在两...

866
来自专栏程序员互动联盟

【入门指导】C语言难吗?

先来看一个网友的对话: ? C语言说难也不难,开始接触就是学习基础,数据类型,函数格式,指针等等。越学越深入,越学视野越宽阔,只要认真看书,听讲,下来多练习,不...

2896
来自专栏java一日一条

暴露程序猿身份的8个行为

职业原因:编程语言都有自己特定的语法,程序员在开发者都要遵守这些。当然,还有一些约定俗成的编程规范,如代码缩进(是缩进4个字符还是8个字符)、注释风格,采用骆驼...

641
来自专栏钱曙光的专栏

一周极客热文:C\C++代码优化的27个建议

极客头条上周最受大家关注的和被广泛讨论的是:《C/C++代码优化的27个建议》,这27个黄金建议很是实用,下面我列举一二。 跳转和分支执行代价高,如果可能,尽量...

1825
来自专栏JAVA高级架构

2年Java开发工作经验面试总结

最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司。我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或...

3758

扫码关注云+社区