当前位置: 首页 > 面试题库 >

星型模式设计-一栏尺寸

狄誉
2023-03-14
问题内容

我是数据仓库的新手,但我认为我的问题相对容易回答。我建立了一个星型模式,其中包含一个尺寸表“ product”。该表具有列“
PropertyName”和列“ PropertyValue”。因此,维度看起来像这样:

surrogate_key | natural_key (productID) | PropertyName | PropertyValue | ...
    1              5                          Size           20          ...
    2              5                          Color          red
    3              6                          Size           20
    4              6                          Material       wood

等等。

在我的事实表中,我始终使用尺寸的替代键。由于PropertyName和PropertyValue列的原因,我的自然键不再是唯一的/无法识别,所以事实表中的行太多了。

现在我的问题是,该如何处理属性列?最好将每个属性放到单独的维度中,例如维度大小,维度颜色等?我有大约30种不同的属性。还是应该为事实表中的每个属性创建列?还是将所有属性一维化?

在此先感谢您的帮助。


问题答案:

您的尺寸表“产品”应如下所示:

surrogate_key | natural_key (productID) | Color | Material | Size | ...
    1              5                      red     wood       20     ...
    2              6                      red     ...

如果必须具有多个属性,请尝试将它们归入另一个维度。例如,如果您可以在另一种颜色或材料中使用相同的ID和相同的价格购买相同的产品,则颜色和材料可以是另一维的属性。您的事实表可以使用两个键来标识产品:product_id和colormaterial_id



 类似资料:
  • 6. 原型模式(Prototype) Intent 使用原型实例指定要创建对象的类型,通过复制这个原型来创建新对象。 Class Diagram Implementation // java public abstract class Prototype { abstract Prototype myClone(); } // java public class ConcreteProt

  • 介绍 原型模式(prototype)是指用原型实例指向创建对象的种类,并且通过拷贝这些原型创建新的对象。 正文 对于原型模式,我们可以利用JavaScript特有的原型继承特性去创建对象的方式,也就是创建的一个对象作为另外一个对象的prototype属性值。原型对象本身就是有效地利用了每个构造器创建的对象,例如,如果一个构造函数的原型包含了一个name属性(见后面的例子),那通过这个构造函数创建的

  • 空白响应 标准的 Delete 方法必须返回 google.protobuf.Empty 才能获得全局一致性。它还可以防止客户端重试时所依赖的元数据不可用。对于自定义方法,它们必须有自己的形如 XxxResponse 的消息,即使它们是空白的,因为很可能在方法功能变化后,需要返回额外的数据。 表示范围 用来表达范围的字段应当使用半开区间的命名约定,形如:[start_xxx,end_xxx),例如

  • 我正在写一个库在Java,我需要转换(地图)一个模型到另一个,反之亦然。我所做的是实现了一个包含两个泛型类型的抽象转换器类,包含convertTo和convertFrom方法,并从它扩展了我的转换器。 但是对于特定的实现,我可能还需要其他对象来进行转换,我不知道什么是实现这些东西的最佳实践。我想过适配器和门面,但他们似乎不符合我的要求。有没有一个设计模式我可以用来做这个?提前谢谢你。

  • 本文向大家介绍Java设计模式之Prototype原型模式,包括了Java设计模式之Prototype原型模式的使用技巧和注意事项,需要的朋友参考一下 一、场景描述 创建型模式中,从工厂方法模式,抽象工厂模式,到建造者模式,再到原型模式,我的理解是,创建对象的方式逐步从编码实现转向内存对象处理。 例如,在“仪器数据采集器”的子类/对象“PDF文件数据采集器”和“Excel文件数据采集器”的创建过程

  • 模型设计 监控模型 CAT主要支持以下四种监控模型: Transaction 适合记录跨越系统边界的程序访问行为,比如远程调用,数据库调用,也适合执行时间较长的业务逻辑监控,Transaction用来记录一段代码的执行时间和次数 Event 用来记录一件事发生的次数,比如记录系统异常,它和transaction相比缺少了时间的统计,开销比transaction要小 Heartbeat 表示程序内定