一家公司正在努力建立一个将消费品(软饮料,洗涤剂,美容产品等)分解为最基本成分的系统。目的是能够将产品的所有特征分解为尽可能多的可数量。例如,软饮料具有特性风味,卡路里,颜色,成本等。请注意,产品将来自各种各样的细分市场,并非所有产品都适用于所有产品(洗涤剂不适用)有相同的发音特性和类似的声音特性(石灰香味的洗涤剂不同于酸橙味的软饮料)。此外,预计搜索速度很快,数据库需要了解产品之间的关系。建议只使用相同的数据模型。
答案 0 :(得分:0)
您突出显示的功能,并非所有属性都描述了所有产品,是类/子类情境的经典功能。或者,如果您愿意,请键入/ subtype。
只处理问题的这个特征,如果你想模拟你对主题的理解,我会引起你对EER(扩展实体关系)模型的注意。 EER有一种描述它所谓的泛化/专业化模式的方式。这是一个很好的搜索词,可以找到它的详细描述。这将充分描述您之后所说的内容。
但是,请注意一点。您在SO中看到的大多数ER模型都是设计模型,而不是概念模型。也就是说,它们反映了设计由列和行组成的表的意图,包括键和外键,以包含相关数据。我推荐的是用于非常不同目的的EER模型。它描述了数据对主题专家的看法,而不是数据对数据库设计者的看法。那些从未了解过分析和设计之间差异的人会失去这种区别。
如果您的项目是主要项目,那么在继续设计之前,值得花费适当的时间对主题进行详细分析。在尝试解决问题之前了解问题是成功开展大型项目的关键。
一旦您拥有一个捕获分析的良好概念模型,选择反映设计的数据模型将取决于您决定构建的数据库类型。它可能是关系型的,可能是多维的,也可能是非结构化的。这取决于。但是,如果它的实现是独立的,那么分析会更有用。