【问题标题】:Unique identifier across multiple tables?跨多个表的唯一标识符?
【发布时间】:2014-06-21 05:28:53
【问题描述】:

跨多个表的唯一标识符?

使用 MySQL,我正在尝试将产品与采购订单相关联。 这些产品可能来自不同的表,可能具有不同的模式。 我无法关联,因为每个产品的身份都是通过架构而不是所有类型的产品来关联的。

手机

+-----+--------+---------+-------+----------+-------+
| id  | brand  | version | color | capacity | price |
+-----+--------+---------+-------+----------+-------+
| 1   | iphone | 5s      | black | 16       | 9500  |
| 2   | iphone | 5s      | white | 32       | 10000 |
| 3   | iphone | 5s      | blue  | 32       | 10000 |
+-----+--------+---------+-------+----------+-------+

课程

+-----+-----------+------------+-------+
| id  | topic     | idschedule | price |
+-----+-----------+------------+-------+
| 1   | Photoshop |  1         | 9500  |
| 2   | HTML5     |  2         | 10000 |
| 3   | CSS3      |  3         | 10000 |
+-----+-----------+------------+-------+

我制作了一个表 Product,它与产品标识一起生成一个唯一标识符。

产品

+-----+-----------+
| id  | Schema    |
+-----+-----------+
| 1   | Cellphone |
| 2   | Course    |
+-----+-----------+

产品规格

+-----+-----------+------------------+----------+------------+
| id  | idproduct | idespecification | quantity | idpurchase |
+-----+-----------+------------------+----------+------------+
| 1   | 1         |  1               | 10       | 1          |=> 10 iphones
| 2   | 2         |  3               | 1        | 1          |=> 1 CSS3 course
+-----+-----------+------------------+----------+------------+

有更好的方法吗?

【问题讨论】:

  • Stackoverflow 搜索“数据库子类型”。

标签: mysql database-design relational-database database-schema


【解决方案1】:

你需要使用抽象和Table Inheritance

您销售的抽象事物(商品、服务等)称为产品。

您销售的抽象实物商品称为商品。好继承产品。

您提供的抽象服务称为服务。服务继承产品。

手机继承Good。

课程继承服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 2016-10-13
    • 2016-09-09
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    相关资源
    最近更新 更多