【发布时间】:2012-11-16 23:43:51
【问题描述】:
设计这个 MySQL 数据库的最佳方法是什么?
我有cars、fuels 和motor oils。每辆车可以使用任意数量的fuels和任意数量的motor oils。设计这个数据库的最佳方式是什么?
所以,一个car 可以有一个或多个fuels,以及一个或多个motor oils。
所以我的数据库中需要有cars、fuels 和motor_oils 表。
现在因为fuels 和motor_oils 有一些类似的属性,比如价格、日期生产等。
创建另一个名为 let say products 的表对我来说是否明智?
当使用 OOP 语言时,我将拥有 Product 实体,Fuel 和 MotorOils 将扩展 Product,并且这种方式具有在 Product 中定义的属性。
我将如何在 Mysql 数据库中设计这个? MySQL中有继承之类的东西吗? 我知道关系数据库没有继承,并且在 MySQL 中有一种方法可以模仿这一点,只需要有人更好地解释这是如何完成的?
【问题讨论】:
-
您可以(并且应该)做的就是在
fuel和motor_oil表中添加引用product表中产品的外键。鉴于,在数据库内部,不需要定义实际的继承,您不需要做太多其他事情。 -
不知道为什么这被否决 - 这是一个合法的问题。在许多项目中,正确的数据库设计没有得到足够的重视
-
@Patrickdev 谢谢!现在的问题是,我将如何用我的 OOP 语言编写这个,比如说 PHP。我会有汽车、燃料、机油、产品实体吗?或者我应该忽略实体中的产品?写这个作为答案;)
标签: mysql sql database-design single-table-inheritance class-table-inheritance