@startuml
skinparam classAttributeIconSize 0
skinparam shadowing false
' ==================== Основные классы ====================
class Заказчик {
+ ID_Заказчика : Integer <<PK>>
+ ФИО : String
+ Тип : String <<enum>> (ФизическоеЛицо, ЮридическоеЛицо)
+ Телефон : String
+ Email : String
+ Адрес : String
+ ИНН : String
}
class Заказ {
+ ID_Заказа : Integer <<PK>>
+ НомерЗаказа : String
+ ДатаПоступления : Date
+ ДатаИсполнения : Date
+ Статус : String <<enum>>
+ Сумма : Decimal
+ ОсобыеПожелания : Text
}
class Чертеж {
+ ID_Чертежа : Integer <<PK>>
+ НомерЧертежа : String
+ ДатаСоздания : Date
+ ФайлЧертежа : String
+ Описание : Text
}
class Сырье {
+ ID_Сырья : Integer <<PK>>
+ Наименование : String
+ Порода : String <<enum>> (Дуб, Сосна, Осина...)
+ Сорт : String
+ ЕдиницаИзмерения : String
+ Количество : Decimal
}
class Поставщик {
+ ID_Поставщика : Integer <<PK>>
+ Наименование : String
+ КонтактноеЛицо : String
+ Телефон : String
+ Email : String
}
class Участок {
+ ID_Участка : Integer <<PK>>
+ НомерУчастка : String
+ Наименование : String
+ ВидРабот : String
}
class Сотрудник {
+ ID_Сотрудника : Integer <<PK>>
+ ФИО : String
+ Должность : String
+ Специализация : String
}
class Деталь {
+ ID_Детали : Integer <<PK>>
+ Наименование : String
+ Размеры : String
+ Материал : String
+ Количество : Integer
}
class Изделие {
+ ID_Изделия : Integer <<PK>>
+ Наименование : String
+ Тип : String
}
class ГотоваяПродукция {
+ ID_Продукции : Integer <<PK>>
+ ДатаГотовности : Date
+ Статус : String <<enum>>
}
class КонтрольКачества {
+ ID_Контроля : Integer <<PK>>
+ ДатаПроверки : Date
+ Результат : String <<enum>> (Успешно, Брак)
+ Рекомендации : Text
}
' ==================== Связи ====================
Заказчик "1" -- "0..*" Заказ : оформляет
Заказ "1" -- "1" Чертеж : имеет
Заказ "1" -- "0..*" ГотоваяПродукция : выполняется_в
Чертеж "1" -- "0..*" Деталь : содержит
Поставщик "1" -- "0..*" Сырье : поставляет
Сырье "0..*" -- "0..*" Участок : обрабатывается_на
Участок "1" -- "0..*" Сотрудник : работает_на
Деталь "0..*" -- "1" Изделие : используется_для
Изделие "0..*" -- "1" ГотоваяПродукция : входит_в
ГотоваяПродукция "0..*" -- "0..*" КонтрольКачества : проходит
Участок "1" -- "0..*" КонтрольКачества : выполняет_контроль
@enduml