什么叫实体数据模型,如何去刻画数据模型?

抱歉,我太早接触到这个实体数据模型(EDM)了。
记得那一次,2 01 5 年,我在一家互联网公司设计数据库。
当时公司有一个很大的项目,要设计一个包含大量数据的复杂系统。

到时候我就得从头开始,先定义实体。
例如,我们应该有用户、订单和产品等实体。
接下来,指定属性,例如用户的姓名、年龄、性别、订单号、订单时间、产品信息、产品名称、价格和库存。
这些属性是描述这些实体的基本信息。

接下来,定义关系。
例如,一个用户可能下了多个订单,一个订单包含多个产品。
这些关系一定要弄清楚,否则数据库设计就会很乱。

然后,画一个ER图。
当时我使用PowerDesigner来绘制实体、属性和关系,看起来相当直观。
我记得当时我画了一张很大的图,有几十个复杂的实体和关系,花了我很长时间。

标准化这一步给我带来了两难的境地。
当时我有一个同事对标准化不太了解,他把ER图直接转换成数据库表。
结果,数据极其冗余。
当一个字段被更新时,整个表必须被移动,这是非常烦人的。
后来我花了两天时间重新设计了数据库schema才解决了这个问题。

总之,实体数据模型一定要认真学习,好好实施。
这对于数据库设计和信息系统开发将非常有用。
在这个领域,我经历了很多陷阱,也收获了很多经验。
如果您有兴趣,可以查看参考资料并了解更多信息。
这个废话我不敢说,但是其实很有用。

在概念设计阶段最常使用的数据模型是

说白了,E-R模型是概念设计阶段最合适的数据图工具。
它由三个基本部分组成:实体(如学生、课程等)、属性(如学生 ID 和姓名等描述)和关系(如学生选择等关系)。
画一个矩形、椭圆形或菱形框就可以清楚地看到。
当我们去年运行该项目时,客户的需求非常复杂。
我们一画E-R图,3 000级别的数据关系立刻就摆到桌面上,沟通效率倍增。

还有一点就是它的抽象性非常好,不用担心后面使用什么数据库,是MySQL还是Oracle。
一开始我觉得很容易画,就胡乱画了,后来发现不对劲。
如果没有明确标注触点类型(1 :1 、1 :N、M:N),后续的逻辑设计就会完全混乱。
还有另一个关键细节。
比如多对多这样的复杂关系,E-R模型比对象模型处理起来要简单得多。
毕竟,对象模型是面向编程的。

等一下,还有一件事。
E-R 模型没有物理存储。
很多人不重视这一点。
说实话,这很令人困惑。
有些人就拿E-R图来思考如何建立索引。
这是浪费时间。
我认为值得尝试使用E-R模型作为“翻译器”,将业务需求翻译成设计语言。