本节书摘来自华章计算机《需求设计:构建用户想要和需要的产品》一书中的第2章,第2.6节,作者: [英] 克里斯·布里顿(Chris Britton) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.6 数据库设计
数据库设计应该与用户界面设计分开来做,其理由有三:
- 同一个数据库可能会由多个应用程序使用,这些应用程序的需求各不相同,我们必须对此进行协调。
- 管理人员可能要搜索数据,营销人员可能要用数据做研究,这些用户所需的数据,与应用程序在运作之中所需的数据可能有所不同。在该阶段,数据库的设计者通常应该把没有包含在情境设计之中的那些需求考虑进来。
- 大公司之中的应用程序开发者,可能已经知道自己想要的是哪些数据,但却不知道在公司的这么多数据库里面,到底哪一个数据库才存放有这些数据。
数据库的设计应该由公司里面的中心数据库团队来做,或者说,至少要体现出他们对该设计方案的强烈影响,因为那个团队应该知道与公司里的全部数据有关的各种知识。(要想做业务分析,就需要了解公司的数据源。)对于数据库中的数据来说,想要真正了解其本质,是不太容易的,因为我们必须要从公司的各种业务和技术名词与技术定义之中找到思路,并且还要考虑到不同的数据来源所给出的数据,其含义也有所不同。很多年前,笔者曾与一家啤酒厂打交道,他们想要知道市面上有多少家销售商。可是,三个数据库却给出了三种答案,其中一个数据库统计了酒店,另一个没有统计,其中一个数据库计算了体育会所,另一个没有计算,这种数据上的差异就是由此类问题所引起的。
对数据库的设计方案进行分析时,要检查下列三个方面:
- 每一份数据都应该由某个应用程序创建,由某个应用程序使用,或是用来做数据分析,并且由某个程序进行删除或归档。
- 如果要对数据进行复制(在大公司中,几乎肯定要对某些数据做复本),那么需要用一套机制来确保数据之间相互一致。
- 如果数据用来表示外部世界之中的信息(如一位客户),那么应该有机制确保该信息准确无误。
这些检查项目,与早前对情境设计做分析时所进行的检查有所重叠,但这一次我们更关注实现层面,而且还有可能引入一些新的数据表。