使用公共ID的三列多对多表设计

时间:2019-03-31 08:41:00

标签: sql oracle

表中的现有设计

style_model_color_map
----------------------

styleid  modelid colorid
---------------------------
italian  y       1 
italian  y       2 
italian  y       3
greek    y       1 
greek    y       2 
greek    y       3
greek    z       1 
greek    z       2 
greek    u       1 
greek    u       2 

我打算这样做

我认为这将减少记录数量,因此抓取会更快

style_model_color_map
------------------------
style   model   groupid 
italian  y       1
greek    y       1
greek    u       2 
greek    z       2

group_color
------------------
id  color  groupid
1    red    1
2    green  1
3    blue   1
4    red    2
5    green  2

我需要一些指导,请提供有关性能和最佳设计的帮助

如果我的第二个设计是正确的。

1。我还需要知道如何在oracle DB中实现这一点,

2。需要帮助来获取给定styleid和model id的所有colorid记录

1 个答案:

答案 0 :(得分:-1)

如果仅想为 style_model_color_map 中的特定样式和模型分配颜色,请

使用 style_model_color_map 表中的 group_color 中的ID。 为组添加新表,这将为以后使用这些表提供更大的灵活性。

string date = "310319";
        string time = "174252";
        DateTime dt;

        bool correct = DateTime.TryParseExact(date + time, 
                                      "ddMMyyHHmmss", 
                                      CultureInfo.InvariantCulture, 
                                      DateTimeStyles.AdjustToUniversal,
                                      out dt); 

        Console.WriteLine(dt);


        DateTimeOffset dto = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);

        dto = new DateTimeOffset(dt, TimeSpan.Zero);
        long y =  dto.ToUnixTimeSeconds();

        Console.WriteLine(y); // output 1554054172