在产品目录中,是否可能有一个产品属于两个不同类别的成员,但只有一个产品ID?即使product_ID是产品表的主键,category_ID是类别表的主键?
例如,假设层次结构如下:
Department (i.e. Sweaters)
Category (i.e. Men's - cat 1, Women's - cat 2, children's - cat 3)
product_ID (i.e. unisex sweater)
并且您希望同一件毛衣产品既属于男式毛衣又属于女式毛衣。
所以这是我无法弄清楚的部分。您是否必须将毛衣产品TWICE存储在Product表中,每个表具有不同的product_ID,以便它可以属于两个不同的类别?如果是这样,则好像是一个查询,例如:
SELECT
product_id,
prod_name,
prod_description
from
PRODUCTS
where
department_id = 1
and category_id IN (1, 2);
会在返回的列表中显示毛衣(以及部门1以及类别1和2中的所有其他内容),但是会在列表TWICE中显示-对两个类别ID中的每个ID一次-对吗?我知道这样做是有可能的,但是我看不出来如何做。
有人可以告诉我如何在一个产品数据库中拥有一个属于两个不同类别的产品吗?
您不想多次存储产品信息,因此需要有一个与产品表和类别表相关的单独表。因此,如果产品#154在#4和#5类别中,则表将具有:
Product Category
154 4
154 5
然后,当您拉出类别中的所有项目时,将产品表加入该表即可获得该类别中的所有产品。
因此,如果此新表名为ProductCategories,则用于提取某个类别(在此示例中为2)的产品的查询将如下所示:
Select
*
from
Products as p
INNER JOIN ProductCategories as con p.ProductId = c.productid
where
c.categoryid = 2
如果要构建生产数据库,则需要进一步研究一些关系数据库概念。如果做错了,这将使某人(无论您是谁还是继承您的人)的生活惨痛。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句