118 lines
2.7 KiB
Plaintext
118 lines
2.7 KiB
Plaintext
// Use DBML to define your database structure
|
|
// Docs: https://dbml.dbdiagram.io/docs
|
|
|
|
Table models {
|
|
id int [pk]
|
|
name varchar [not null, unique]
|
|
strings int [not null, default: 6, note: "ilosc strun"]
|
|
scale int [not null, default: 645, note: "menzura w mm"]
|
|
}
|
|
|
|
Table colors {
|
|
id int [pk]
|
|
name varchar [not null, unique]
|
|
burst bool [not null, default: false, note: "czy ma cien"]
|
|
monolith bool [not null, default: false, note: "czy nie jest transparetny"]
|
|
}
|
|
|
|
Enum finish_type {
|
|
GLOSS
|
|
SATIN
|
|
MAT
|
|
NITRO
|
|
}
|
|
|
|
Table products {
|
|
id int [pk]
|
|
order_code varchar [not null, unique, note: "pelny nr zamowinia w formie tekstowej XXXX/YYYY/ZZ"]
|
|
model int [ref: > models.id, not null]
|
|
color_body_top int [ref: > colors.id, not null]
|
|
color_body_back int [ref: > colors.id, not null]
|
|
color_neck_top int [ref: > colors.id, null, default: null]
|
|
color_neck_back int [ref: > colors.id, null, default: null]
|
|
finish_body_top finish_type [not null]
|
|
finish_body_back finish_type [not null]
|
|
finish_neck_top finish_type [null, default: null]
|
|
finish_neck_back finish_type [null, default: null]
|
|
note text
|
|
}
|
|
|
|
Table detail_products {
|
|
id int [pk]
|
|
product_id int [ref: - products.id, not null]
|
|
spec text [note: "specyfikacja pobrana ze starego systemu w formie json"]
|
|
url varchar [note: "adres url strony ze specyfikacja ze starego systemu" ]
|
|
|
|
}
|
|
|
|
Table clients {
|
|
id int [pk]
|
|
name varchar [not null, note: "Nazwa klienta"]
|
|
country varchar [note: "Kraj klienta"]
|
|
}
|
|
|
|
Table orders {
|
|
id int [pk]
|
|
order_number int [not null, note: "XXXX, eg 0027"]
|
|
order_year int [not null, note: "YYYY, eg 2025"]
|
|
client_id int [ref: > clients.id ,not null]
|
|
indexes {
|
|
(order_number, order_year) [unique]
|
|
}
|
|
}
|
|
|
|
Table order_products {
|
|
id int [pk]
|
|
product_id int [ref: > products.id, not null]
|
|
order_id int [ref: > orders.id, not null]
|
|
product_order_idx int [not null]
|
|
|
|
indexes {
|
|
(order_id, product_order_idx) [unique]
|
|
}
|
|
}
|
|
|
|
Table operations {
|
|
id int [pk]
|
|
operation varchar [not null]
|
|
description text
|
|
}
|
|
|
|
Enum event_type {
|
|
OPERATION
|
|
INFO
|
|
ERROR
|
|
}
|
|
|
|
Enum target_type {
|
|
BODY
|
|
NECK
|
|
}
|
|
|
|
Table events {
|
|
id int [pk]
|
|
product_id int [ref: > products.id, not null]
|
|
operation_id int [ref: > operations.id]
|
|
ordinal int [not null, note: "liczba porzadkowa, wielokrotnosc 32, zeby mozna bylo dodac pomiedzy"]
|
|
type event_type [not null, default: "OPERATION"]
|
|
target target_type [not null, default: "BODY"]
|
|
date date [not null]
|
|
description text
|
|
photo image
|
|
}
|
|
|
|
Table production_lists {
|
|
id int [pk]
|
|
name varchar [not null, unique]
|
|
description text
|
|
}
|
|
|
|
Table production_list_products {
|
|
id int [pk]
|
|
product_id int [ref: > products.id, not null]
|
|
prod_list_id int [ref: > production_lists.id, not null]
|
|
|
|
indexes {
|
|
(product_id, prod_list_id) [unique]
|
|
}
|
|
} |