数据库设计
· 17 min read
译自:https://www.datanamic.com/support/lt-dez005-introduction-db-modeling.html
本文将讲述关系型数据库设计的基础,并解释如何进行良好的数据库设计。文章很长,但我们建议你读完它。数据库设计是相当容易的,但有一些规则需要坚守。知其然更要知其所以然,否则,很容易犯错。
标准化使数据模型更加灵活,从而使处理数据更加容易。请花点时间去学习这些规则,并应用它们。本文使用的数据库是用数据库设计和建 模工具design for Databases设计的。
一个好的数据库设计,首先要列出,你想要保存的数据,以及对其进行的操作。尝试首先用人类语言进行描述,而不要去想 table, column 这些概念。要认真对待这个问题,否则很容易返工。数据库是软件开发中很重要的一部分,值得你多花些时间。
实体 Entities
保存在数据库中的信息,一般称为实体。实体主要包含四种类型:人 (people),物 (things),事件 (events),以及地点 (locations)。如果你发现某种信息不能归入以上四类,那他很可能不是实体,而是实体的属性 (property, attribute)。
让我们使用以下例子,以便于理解。想象,你要创建一个电商网站,都需要处理哪些信息呢?在一家商店 (shop),你做的事情,是出售商品 (products),给顾客 (customers)。
- 商店 shop,是一个 location.
- 出售 sale,是一个 event
- 商品 products,是 things
- 顾客 customers,是 people 以上就是所有需要数据库需要包含的全部的实体。
在交易过程中,还有别的事情发生吗?一个顾客走进商店,靠近一名售货员(vendor),问了一个问题,得到一个答案。售货员也参与了这个过程,并且是 people,所以我们需要一个售货员实体。
Figure 1: Entities: type of information.