Это не домашнее задание, а новое задание, назначенное начальником. Создать систему для внутренних конечных пользователей, которая автоматически предлагает различные сборочные линии в зависимости от пропускной способности каждой линии. Пользователи должны поддерживать емкость каждой линии каждый месяц, и каждая линия имеет свою собственную группу продуктов, работающую на ней с уникальным приоритетом на каждой сборочной линии. Когда поступит заказ на продажу, эта система на основе приведенного ниже обслуживания планирования линии выполнит автоматическое распределение для каждой сборочной линии на основе настройки приоритета.
Например, продукт A, относящийся к группе продуктов XYZ, будет работать на L1 и L2.
Пример данных
Период | Line_Number | Product_Subgp | Line_Capacity | Prority
201009 | L1 | XYZ | 2000 | 1
201009 | L1 | ABC | 2000 | 2 * * +1010
201009 | L2 | XYZ | 2000 | 2
201009 | L2 | ZZZ | 2000 | 1
Структура таблицы для заголовка строки: LinHdr
Line_Hdr_ID | Int (AutoIncrement)
Line_Number | VarChar (10) [первичный ключ]
Период | VarChar (6) [первичный ключ]
Емкость | Числовой (16) * 1 025 *
Special_Capacity | Числовой (16) * * тысяча двадцать-шесть
Line_Description | VarChar (20)
Структура таблицы для заголовка строки: LinDtl
Line_Dtl_ID | Int (AutoIncrement)
Line_Hdr_ID | Int [Первичный ключ]
Группа продуктов | VarChar (10) [первичный ключ]
Prority | Числовой (2)
Вопросы:
Таблица LinHdr: Line_Number + Period - первичный ключ. Поскольку эти 2 поля будут действовать как уникальность и как ключ поиска данных. Правильно ли установить оба в качестве первичного ключа?
Таблица LinHdr: Нужно включить Lin_Hdr_ID в качестве первичного ключа?
(LinHID, автоинкрементный для SQL, будет невидим для пользователей).
- Целью LinHID является соединение с LinDtl, поэтому нет необходимости включать избыточные данные (т.е. Period + Line_Number) в LinDtl, используя Lin_Hdr_ID для связи между двумя таблицами.
Таблица LinDtl: Line_Hdr_ID + Product_Group будет установлен как первичный ключ для обеспечения уникальности.
Это правильно иметь этот Line_Dtl_ID?
Это поле необходимо?
Если Line_Hdr_ID + Product_Group уже обеспечивают уникальность, можете ли исключить Line_Dtl_ID?
Или лучше объединить две таблицы выше в одну таблицу, которая не создала реляционную базу данных?
Надеюсь, здесь можно получить совет от экспертизы.
Заранее спасибо.