【发布时间】:2011-05-11 17:57:04
【问题描述】:
我有两张桌子
表 A - 产品信息 - 颜色、尺寸等...(product_id, color, size...)
表 B - 费率信息 - 费率可能因颜色、尺寸、状态等而异... (rate_id, product_id, color, size, state, rate)
并非所有产品的费率都因颜色、尺寸、状态等而异......这因产品而异
如果是这种情况,则只有费率变化的属性在费率表中具有值 例如如果产品 X 费率不因尺寸或状态而异,但因颜色而异,则费率表中的条目将具有不同的颜色值,但尺寸、状态字段将为空。
SQL 中有没有一种方法可以为产品获取正确的费率值 - 我无法匹配所有产品属性,因为可能没有匹配的行
我想要的是一个查询,它可以获取与产品 X 相关的费率,并将与其他产品一起使用,这些产品的费率可能因不同的属性集而异。
【问题讨论】:
-
我认为你最好让架构更简单。表 A 不应包含颜色或尺寸信息。表 B 应始终包含给定 product_id 的一行或多行。您总是在表之间进行内部联接。不需要条件。
-
同意架构绝对是“关闭”的。如果行数很少,而且表不是到处使用,那么修复表结构是必须的。
标签: sql sql-server