前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >敏捷开发下, 由 User Story 中设计: 保证数据一致性的数据库表结构

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

作者头像
Ken Fang 方俊贤
发布2018-01-05 10:53:09
7710
发布2018-01-05 10:53:09
举报

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Prowork 团队协同
ProWork 团队协同(以下简称 ProWork )是便捷高效的协同平台,为团队中的不同角色提供支持。团队成员可以通过日历、清单来规划每⽇的工作,同时管理者也可以通过统计报表随时掌握团队状况。ProWork 摒弃了僵化的流程,通过灵活轻量的任务管理体系,满足不同团队的实际情况,目前 ProWork 所有功能均可免费使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档