【发布时间】:2010-05-20 16:42:24
【问题描述】:
我正在构建一个类似于here 描述的数据库,其中我有不同类型的产品,每种类型都有自己的属性。
为方便起见,我报告了一个简短的版本
product_type
============
product_type_id INT
product_type_name VARCHAR
product
=======
product_id INT
product_name VARCHAR
product_type_id INT -> Foreign key to product_type.product_type_id
... (common attributes to all product)
magazine
========
magazine_id INT
title VARCHAR
product_id INT -> Foreign key to product.product_id
... (magazine-specific attributes)
web_site
========
web_site_id INT
name VARCHAR
product_id INT -> Foreign key to product.product_id
... (web-site specific attributes)
这样我就不需要为不同产品类型的每个属性创建一个包含一列的巨大表(其中大部分将是 NULL)
我如何SELECTproduct.product_id 的产品并查看其所有属性?
我是否必须先进行查询以了解我正在处理的产品类型,然后通过一些逻辑对正确的表进行另一个查询JOIN?或者有没有办法把所有东西结合在一起? (如果,当我检索有关 product_id 的信息时,有很多 NULL,此时就可以了)。
谢谢
【问题讨论】:
标签: sql mysql database-design