Проблемы с дизайном ER-модели

Я пытаюсь разработать модель для нашей будущей базы данных наших игрушек и некоторых измерений, которые должны быть сделаны после производства. У меня проблемы с пониманием, как смоделировать это. Я пробовал несколько способов, но ни один из них не кажется оптимальным, и в итоге я всегда терял связь между сущностями.

Чего мне нужно добиться, так это какого-то осмысленного отношения между следующим:

  • Игрушка (с некоторыми тривиальными свойствами).
  • Серия игрушек (несколько игрушек могут относиться к одной серии, а игрушка может принадлежать только одной серии).
  • Шаги измерения. В настоящее время есть 6 из этих шагов. Каждый шаг имеет свои входные параметры, которые различаются по типу и количеству (например, только 3 параметра для шага измерения 1 и 10 параметров для шага измерения 2).
  • Для каждой серии определяется последовательность этих этапов измерения. Допускаются дубликаты тестов (например, шаг измерения 1 > шаг измерения 4 > шаг измерения 1 является допустимой последовательностью). Последовательность вместе с параметрами должна храниться где-то для дальнейшего использования.
  • Каждая игрушка проходит последовательность измерений, которая определяется ее серией. Все результаты должны храниться где-то (для каждой отдельной игрушки).

Если я разделю шаги измерения на их собственные таблицы, я не смогу условно связать их (как внешние ключи) с какой-либо другой таблицей. Если я пытаюсь сериализовать часть данных, я теряю способность устанавливать связи между отдельными этапами измерения, результатами измерения (по крайней мере, с помощью запросов) и т. Д.

Я знаю, что люди здесь, как правило, ненавидят / не отвечают на подобные "дискуссионные" вопросы, но я бы попросил вас, по крайней мере, указать, что является хорошей практикой в ​​системе, где мне нужно хранить это локально на машина, но нужна база данных для хранения данных - чтобы перейти к последовательным данным и просто установить общие отношения там, где это легко сделать, или продолжать пытаться максимально их нормализовать?

1 ответ

Если шаги измерения имеют большинство атрибутов (или имеют одинаковый тип, например, то, что вы называли ПАРАМЕТРАМИ), и я правильно понял ваши определения, я бы сделал что-то подобное.

Это может быть отправной точкой.

+----------------------------+                    +------------------------------+
|             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         |
                                                  |                              |
                                                  |                              |
                                                  +------------------------------+
Другие вопросы по тегам