Запрос относительно нормализации SQL

У меня есть различные таблицы в базе данных. Таблицы в основном имитируют пошаговый метод вставки информации инженерами через веб-сайт. Они записывают все данные для шага и переходят к следующему шагу. Есть 20 таких шагов, которые последовательно выполняются для конкретного Модуля.

Таблицы похожи на (Таблица партии ячеек)

S.No.        Module Number       Lot Number     Signed By       Notes      Date
------------------------------------------------------------------------------------------------
1             A1-001              DAX01          Lydia          No Error   9/17/2018 12:32:01 PM
2             A2-001              DAX01          Palmer         No Error   9/17/2018 12:34:11 PM
3             A1-001              DAX02          Patricia       No Error   9/17/2018 12:37:31 PM

(Таблица отверждения)

S.No.        Module Number       Pre-Dispense Weight      Post-Dispense Weight      Signed By       Notes          Date
-------------------------------------------------------------------------------------------------------------------------------------------
1             A1-001                3.2                      3.6                    Henry      Slightly higher       9/17/2018 12:39:01 PM
2             A2-001                3.1                      3.9                    Lydia      Very high             9/17/2018 12:45:01 PM
3             A2-001                2.1                      2.9                    Palmer     Within Range          9/17/2018 12:48:01 PM

Точно так же есть другие таблицы, которые принимают информацию в том же стиле, что и выше.

Единственная проблема в том, что номера модулей могут повторяться в таблице. Часто инженеры снова записывают один и тот же шаг в таблицу для конкретного модуля, что приводит к двум записям данных для него. Как можно увидеть в таблице партий ячеек для модуля A1-001. Похоже, им нужна эта функция, поскольку им нравится отслеживать модуль и видеть, как он меняется с течением времени. Так обстоит дело со всеми таблицами.

Как лучше всего это нормализовать? Или мне следует использовать какой-то другой подход для создания моих таблиц?

Любая помощь приветствуется!

Какую проблему вы пытаетесь решить? В чем проблема с таблицами в их нынешнем виде?

Gordon Linoff 17.09.2018 21:59

Тот факт, что вы повторяете свой module number, не означает, что он не нормализован должным образом как есть. Мне нравится, ОП.

JNevill 17.09.2018 22:18

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

Barmar 17.09.2018 22:24

Если вам не нравится идея многократно хранить подобные имена, вы можете создать таблицу Modules и заменить Module Number внешним ключом для Modules.id.

Barmar 17.09.2018 22:25

Ой. Понятно. Я чувствовал, что проектирование моей базы данных было немного неправильным, поскольку я не мог очень явно увидеть первичный ключ или соединение внешнего ключа первичного ключа в моих таблицах, что люди имеют в виду при работе с системами rdbms.

Cyber_Tron 17.09.2018 22:33

Привет. Пора прочитать учебник по информационному моделированию, реляционной модели и проектированию баз данных. (Nb. Руководство по инструменту дизайна, API или языку для записи дизайна не является руководством / учебным пособием по дизайну.)

philipxy 09.10.2018 03:25
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
6
49
0

Другие вопросы по теме