Database design 物理数据模型中的枚举类
我已经为一家食品配送企业创建了我的数据库的UML类图。我在那里使用了3个Database design 物理数据模型中的枚举类,database-design,relational-database,uml,Database Design,Relational Database,Uml,我已经为一家食品配送企业创建了我的数据库的UML类图。我在那里使用了3个类。现在我想为该数据库创建一个物理数据模型,这样我就可以基于该物理数据模型构建实际的MySQL数据库了 问题是我不知道如何为物理数据模型中的类绘制等价物。它们看起来像其他桌子吗? 下面你可以看到我的UML类图中有3个类 !!!更新 早在2009年通过使用名为Toad data Modeler的数据建模软件,您可以做到: Order -------------------------------
类。现在我想为该数据库创建一个物理数据模型,这样我就可以基于该物理数据模型构建实际的MySQL数据库了
问题是我不知道如何为物理数据模型中的
类绘制等价物。它们看起来像其他桌子吗?
下面你可以看到我的UML类图中有3个类
!!!更新 早在2009年通过使用名为Toad data Modeler的数据建模软件,您可以做到:
Order
-----------------------------------
PK order_id : integer
datetime_order_taken : date
datetime_order_completed : date
total_order_price : long
order_details : string
payment_method : enum('cash','credit card')
payment_status : enum('paid','waiting for delivery','not paid')
etc. ...
现在,现代数据建模工具不再允许您为字段指定枚举类型。相反,您可以创建一个包含该字段所有可能值的查找(引用)表,并将其与字段的表链接,如下所示:
Order
-----------------------------------
PK order_id : integer
FK payment_method_code : integer
etc. ...
Ref_Payment_Method
-----------------------------------
PK payment_method_code : integer
payment_method_decription : varchar(30)
然后,您需要在Ref_Payment_Method表(所谓的查找/参考表)中填写所有可能的付款方式
枚举中的文字不具有可见性。您需要删除前面的
+
符号。(另请参见UML2.5.1的第168页)据我所知,ENUM不是RDBMS的符合ANSI的构造。我相信典型的实现模式是查找表。枚举不也需要ALTER语句来修改吗?是的,这是真的。自从我使用Toad Data Modeler工具创建数据模型以来,已经有很长一段时间了。那时(2009年),您将创建一个枚举类型的域,并在表中选择它作为属性。最终的模型看起来和我上面描述的一模一样。这里有一个证据:。现在情况发生了变化,您不应该在表中指定枚举类型,而应该使用查找(ref)表(如您所指出的)
Ref_Payment_Method
=====================================================
payment_method_code | payment_method_decription
-----------------------------------------------------
1 | cash
2 | credit card