0

我正在尝试为我们未来的玩具数据库和必须在后期制作中完成的某些测量设计一个模型。我很难掌握如何建模。我尝试了多种方法,但没有一种方法看起来是最佳的,最后我总是迷失实体之间的连接。

我需要实现的是以下之间的某种有意义的关系:

  • 一个玩具(具有一些琐碎的属性)。
  • 一个系列的玩具(多个玩具可以关联一个系列,一个玩具只能属于一个系列)。
  • 测量步骤。目前有 6 个这样的步骤。每个步骤都有自己的输入参数,这些参数的类型和数量各不相同(例如,测量步骤 1 仅有 3 个参数,测量步骤 2 有 10 个参数)。
  • 对于每个系列,定义了这些测量步骤的顺序。允许重复测试(例如,测量步骤 1 > 测量步骤 4 > 测量步骤 1 是有效序列)。序列和参数必须存储在某个地方以供将来参考。
  • 每个玩具都经过由其系列定义的测量序列。所有结果都必须存储在某个地方(对于每个单独的玩具)。

如果我将测量步骤分成他们自己的表,我不能有条件地将它们(作为外键)引用到其他表。如果我尝试序列化部分数据,我将失去在各个测量步骤、测量结果(至少通过查询)等之间建立联系的能力。

我知道这里的人们通常讨厌/不回答这类“类似讨论”的问题,但我希望您至少指出在我需要将其本地存储在机器,但需要一个数据库来保存数据 - 转向类似串行的数据,只是在容易做到的地方建立一般关系,或者继续尝试尽可能地对其进行规范化?

4

1 回答 1

0

如果测量步骤共享大多数属性(或属于相同类型,如您所说的参数),并且我正确理解您的定义,我会做这样的事情。

这可能是一个起点。

+----------------------------+                    +------------------------------+
|             TOYS           |                    |           TOY_SERIES         |
+-----+----------------------+                    +---------+--------------------+
| PK  |  ID_TOY              |         +----------+ PK, FK1 |  ID_S              +--------+
|     |                      |         |          +------------------------------+        |
| FK1 |  ID_S                +---------+          |         |  ...               |        |
+----------------------------+                    |         |                    |        |
|     |  ...                 |                    |         |                    |        |
|     |                      |                    |         |                    |        |
+-----+----------------------+                    +---------+--------------------+        |
                                                                                          |
                                                                                          |
                                                                                          |
                                                                                          |
                                                  +------------------------------+        |
                                                  |         BR_SER_MEAS          |        |
                                                  +---------+--------------------+        |
                                                  | PK, FK1 |  ID_S              +--------+
                                                  |         |                    |
                                                  | PK, FK2 |  ID_M              +--------+
                                                  |         |                    |        |
                                                  | PK      |  ID_SEQ            |        |
                                                  |         |                    |        |
                                                  +---------+--------------------+        |
                                                                                          |
                                                                                          |
                                                  +------------------------------+        |
                                                  |        MEASURE_STEPS         |        |
                                                  +------------------------------+        |
                                                  | PK          ID_M             +--------+
                                                  +------------------------------+
                                                  |             PARAM_01         |
                                                  |             ...              |
                                                  |             PARAM_10         |
                                                  |                              |
                                                  |                              |
                                                  +------------------------------+
于 2017-09-08T12:47:10.977 回答