在sql中进行多对一或多个建模

时间:2016-05-06 16:10:46

标签: sql

我有一种颜色可以与一种或多种颜色相互作用,以产生不同的颜色。我如何建模这是SQl。

2 个答案:

答案 0 :(得分:1)

Color table
ID
ColorName

Blend table
BlendID  --FK to Color Table ID
Color.ID  --FK to colorTableID
QTY 
UOM etc..

这样您可以使用混合创建另一种颜色。此外,这种方法可让您将特定数量混合在一起,以实现所需的颜色混合。

步骤

  1. 向颜色表添加新颜色
  2. 添加与Blend的关系,用于定义" blend"实现这种颜色注意,对于每条记录,colorID会重复,而colorID会有所不同。
  3. color
    1 Yellow 
    2 Blue 
    3 black 
    4 dark green
    5 white
    6 red
    7 maroon
    

    Blend
       4, 1
       4, 2
       4, 3
       7, 4
       7, 5
       7, 6 
    

    使深绿色混合黄色,​​蓝色,黑色

    使栗色混合白红色和深绿色。

    **免责声明:我的混色技巧非常有限,混音结果可能与任何形状或形式的颜色名称不符。黑色和白色是对的吗?没有等待它的色彩和色调....或者没有颜色或所有颜色......我永远无法做到这一点......我们混合浅色或油漆颜色?没关系......我迷失了自己。

答案 1 :(得分:0)

将正确的sintax用于您的DBMS,但您可以尝试这种方式:

create table colors ('id', 'name');
create table colorMix ('first_color_id', 'second_color_id', 'result_color_id')

然后你可以这样做:

select colors.name from colorMix join colors on result_color_id = id where 'first_color' = '1' and 'second_color' = 2

这就是你想要的?