Tat*_*tat 11 database database-design class-table-inheritance
如果我有一个叫动物的类,狗和鱼是子类.动物具有称为"颜色"的属性.狗具有称为"尾长"的属性,并且鱼没有此属性.鱼具有称为"重量"的属性,狗没有这个属性.
所以,我想设计一个数据库来存储这些信息.我该怎么办?这是一些想法:
想法1:制作动物表,并且表格有类型,以找到什么样的动物,如果是狗,只需从狗桌得到结果.
Animal:color:String类型:int
类型:狗:0鱼:1
狗:TailLength:int
鱼:重量:int
想法2:只在数据库中存储Dog表和Fish表,删除动物表.
狗:颜色:字符串TailLength:int
鱼:颜色:字符串重量:int
Owe*_* S. 12
你提到的两种方法:
可以由另外两个补充:
每种方法都有利有弊.这里有一个很好的概述:
另请查看以下SO主题:
最后,应该注意的是,有一些面向对象的数据库(也就是对象数据库或OODBMS)可以更自然地在数据库中表示对象,并且可以很容易地解决这个问题,尽管我认为它们并不常见用于工业.下面是一些描述此类数据库与关系(和其他)数据库相比较的链接,但它们不会给出完全客观(heh)的观点:
| 归档时间: |
|
| 查看次数: |
12061 次 |
| 最近记录: |