0

我一直在试图弄清楚如何在不同的表之间创建链接,但我没有运气破解这个谜团。我学得越多,我就越质疑我应该问什么问题。我制作了一些表格图来展示我想要实现的目标......

我有一张衬衫桌,看起来像这样:

衬衫桌

请注意,在标有“qp_price”和“o_price”的列中,我有文本而不是价格,这是因为我想将其连接到此表:

价位表

“qp_price”和“o_price”的值等于价格表中“price_cat”列中的值之一。这是我在未来试图简化价格管理的方式。在衬衫表中,您会看到重复的值,这是因为它们的价格相同,除了男士衬衫之外,还有女士圆领衫、男孩、女孩和婴儿。我想将它们链接到一个新的衬衫表中,结果如下:

大师衬衫

我还想知道索引以及将其创建为索引是否会更好:

衬衫指数

然后将其注入到 shirts_master 表中,但是您执行此操作并将“clr_options”和“qty”列添加到 shirts_master 表中。我希望它以两种不同的价格进行组织,因为我有两种类型的自定义服务将调用相应的列。最后,我仍然想要单独的衬衫和价格表,只是链接到另一个表,这样我就可以更新它们并让它通过链接自动在主表中读取它。把这些放在一起的最聪明的方法是什么?

4

2 回答 2

1

您的列qp_priceo_price来自 SHIRT 表的列应该是引用表 PRICE_LIST中列的外键。price_id那么您将不需要price_catPRICE_LIST 表中的列。

于 2012-12-04T08:28:29.783 回答
1

不太确定你想做什么,但你可以通过shirts_master简单的加入来获得你的

select s.shirt_id, s.shirt_name, s.shirt_type, s.shirt_size,
       qp.price as qp_price, o.price as o_price, s.clr_options, s.qty
from shirts s
join price_list qp on qp.price_cat = s.qp_price
join price_list o on o.price_cat = s.o_price;

如果您想将此作为视图,可以使用

create view shirts_master as
select s.shirt_id, s.shirt_name, s.shirt_type, s.shirt_size,
       qp.price as qp_price, o.price as o_price, s.clr_options, s.qty
from shirts s
join price_list qp on qp.price_cat = s.qp_price
join price_list o on o.price_cat = s.o_price;
于 2012-12-04T08:29:03.863 回答