敏捷开发下, 由 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 条评论
登录 后参与评论

相关文章

来自专栏技巅

IT技术水平会像贫富差距一样越来越大

1764
来自专栏Java架构

金三银四如何找工作?阿里、京东、美团内推题送给还在迷茫的朋友从事Java开发工作十二年总结面试宝典一、阿里巴巴面试二、京东金融面试三、美团面试四、滴滴面试

1754
来自专栏Java架构

迎战金九银十:阿里、京东、美团内推题送给还在迷茫的朋友

跳槽,对IT人来说绝对不是个陌生的词汇,几乎所有人都身体力行过。首先我要强调一点,跳槽并没有坏处,但是频繁的跳槽就不好了。在工作的前4年,必须跳槽,而且鼓励跳槽...

633
来自专栏令仔很忙

机房收费系统(VB.NET)个人版总结

重构版个人机房收费系统大概从暑假开学开始进行,花了不到一个半月的时间才完成,下面对我在重构过程中的一写理解。

491
来自专栏令仔很忙

机房收费系统-状态图与活动图

   用来描述对象,子系统,系统的生命周期。通过状态图可以了解一个对象所能达到的所有状态,以及对象收到的事件对对象状态的影响。

631
来自专栏ThoughtWorks

你听说过“风格指南驱动开发”吗?|洞见

“今天,客户的UX又给我邮件了一版新的设计(PDF文件),改动不大,无非就是这个高度再调高点、那个宽度再调小些、这里用粗体、那边用18px的字体,可以参考以前做...

2715
来自专栏java一日一条

程序员你为什么这么累?

大家一提到程序员,首先想到的是以下标签:苦逼,加班,熬夜通宵。但是,但凡工作了的同学都知道,其实大部分程序员做的事情都很简单,代码CRUD可以说毫无技术含量,就...

764
来自专栏JAVA高级架构

2018年 阿里,百度,腾讯 等公司:对于Java开发者的招聘标准

1021
来自专栏Java架构

阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准阿里巴巴篇百度篇腾讯篇

1944
来自专栏社区的朋友们

关于人才培养的一点心得

正式入职鹅厂已有三年,三年里带了三个徒弟,其中两个又各自带了一个。本文纯属自己的一点心得,对错不好说,欢迎对此感兴趣的小伙伴们一起交流、探讨。

2121

扫码关注云+社区