我怎样才能多态地构建数据库?

时间:2016-05-31 13:18:01

标签: database excel design-patterns polymorphism

这可能是一个愚蠢的问题,但我的经验很少。我遇到了一个问题,我正在为一个小工厂使用Excel电子表格。

它有大量的产品列表,分为不同的系列。

类比:卡罗拉,Avensis,Landcruiser =丰田

此外,产品还有与之相关的任务列表。

花冠: 步骤1 第2步 第3步......

所有产品在前几个阶段共享任务,甚至跨越不同的家庭。 但有些发生在生产过程中的不同阶段 productX中的步骤6可能是productY中的第5步。 但是productX和productY分享1-5。 (这是全面的。

我有三个问题。 是否有可能以多态方式构建数据库?常见任务可以放在基类中,并且更具体(OO常见)。

如果不能,你可以创建一个无序任务的中央数据库,并为产品的每个数据库提供某种优先级,并为任务提供一些订单。

最后一个问题是有人遇到过这样的问题吗?我觉得必须有一个设计模式。感觉就像解决方案是我无法掌握的。

编辑1.电子表格暂时是空白的。工作表是产品名称。该字符串 - 整数组合是产品编号。价值将放在下面,即时间/小时,产品应在指定的时间内进行> [/ {0}}

1 个答案:

答案 0 :(得分:1)

所以,这就是我所理解的:

  • 您需要在产品和任务/步骤之间存储映射。后者应按照要执行的顺序存储。
  • 所有产品的一些初始任务总是很常见。
  • 您希望以多态方式构建数据库。既然你没有提到你正在使用什么类型的数据库,我会认为它是一个关系数据库。

您可以创建表格:

  • Product:每行存储一个产品的数据。主键:product-name(或product-id,无论如何)
  • Task:有关任务的信息,例如完成任务所需的时间等。主要密钥:task-name/id
  • ProductTaskMapping:包含要​​按顺序完成哪些任务的映射。其架构如下。您还可以考虑将前两列作为外键。
    • product-name - 指Product表中的主键。
    • task-name - 指Task表中的主键。
    • prioritysequence-number
  • CommonTask:两列:
    • task-name
    • priority

此外,无法在两个表之间定义“继承”。