fix datatypes, erd

This commit is contained in:
hilfe 2024-02-08 10:50:19 +01:00
parent 60e1e72bff
commit 8092510098
2 changed files with 79 additions and 61 deletions

114
erd.dbml
View file

@ -1,61 +1,79 @@
// Use DBML to define your database structure
// Docs: https://dbml.dbdiagram.io/docs
// https://dbdiagram.io/d/
// Kraut&Rübel ERD
Table Kunde {
KundenNr integer [primary key]
Vorname string
Nachname string
Strasse string
Geburstdatum timestamp
HausNr string
PLZ integer
Email string
Telefon integer
Ort string
Table Customer {
id string [primary key]
first_name string
last_name string
street string
birth_date timestamp
house_number string
postal_code integer
email string
phone integer
city string
}
Table Bestellung {
BestellNr integer [primary key]
KundenNr integer
Rechnungsbetrag integer
Bestelldatum timestamp
Table Order {
id string [primary key]
customer Customer
invoice_amount integer
order_date timestamp
}
Table Zutat {
ZutatenNr integer [primary key]
Bezeichnung string
Bestand integer
Nettopreis integer
Einheit string
Kohlenhydrate integer
Kalorien integer
Protein integer
Table Ingredient {
id string [primary key]
designation string
stock integer
net_price integer
unit string
carbonhydrates integer
calories integer
protein integer
}
Table Lieferant {
LieferantenNr integer [primary key]
Ort string
Strasse string
Email string
Telefon string
Liferantenname string
HausNr string
PLZ integer
Table Supplier {
id string [primary key]
city string
street string
email string
phone string
supplier_name string
house_number string
postal_code integer
}
Table Lieferant_contains_Zutaten {
LieferantenNr integer [primary key]
ZutatenNr integer [primary key]
Table Recipe {
id string [primary key]
preperation_time integer
name string
description string
instructions string
}
Table Bestellung_contains_Zutaten {
BestellNr integer [primary key]
ZutatenNr integer [primary key]
Menge integer
Table RecipeContainsIngredients {
recipe string [primary key]
ingredient string [primary key]
amount integer
}
Ref: Bestellung.KundenNr > Kunde.KundenNr
Ref: Lieferant_contains_Zutaten.LieferantenNr > Lieferant.LieferantenNr
Ref: Lieferant_contains_Zutaten.ZutatenNr > Zutat.ZutatenNr
Ref: Bestellung_contains_Zutaten.BestellNr > Bestellung.BestellNr
Ref: Bestellung_contains_Zutaten.ZutatenNr > Zutat.ZutatenNr
Table SupplierContainsIngredients {
supplier string [primary key]
ingredient string [primary key]
delivery_cost integer
delivery_time integer
}
Table OrderContainsIngredients {
order string [primary key]
ingredient string [primary key]
quantity integer
}
Ref: Order.customer > Customer.id
Ref: SupplierContainsIngredients.supplier > Supplier.id
Ref: SupplierContainsIngredients.ingredient > Ingredient.id
Ref: OrderContainsIngredients.order > Order.id
Ref: OrderContainsIngredients.ingredient > Ingredient.id
Ref: RecipeContainsIngredients.recipe > Recipe.id
Ref: RecipeContainsIngredients.ingredient > Ingredient.id

View file

@ -3,7 +3,7 @@ from dataclasses import dataclass, asdict
@dataclass
class Customer:
customer_id: int
id: str
first_name: str
last_name: str
street: str
@ -20,8 +20,8 @@ class Customer:
@dataclass
class Order:
order_id: int
customer: Customer
id: str
customer: Customer.id
invoice_amount: int
order_date: str # Assuming timestamp as a string for simplicity
@ -31,7 +31,7 @@ class Order:
@dataclass
class Ingredient:
ingredient_id: int
id: str
designation: str
stock: int
net_price: int
@ -46,7 +46,7 @@ class Ingredient:
@dataclass
class Supplier:
supplier_id: int
id: str
city: str
street: str
email: str
@ -60,7 +60,7 @@ class Supplier:
@dataclass
class Recipe:
recipe_id: int
id: str
preperation_time: int
name: str
description: str
@ -70,15 +70,15 @@ class Recipe:
return {k: str(v) for k, v in asdict(self).items()}
@dataclass
class SupplierContainsIngredients:
recipe: Recipe
ingredient: Ingredient
class RecipeContainsIngredients:
recipe: Recipe.id
ingredient: Ingredient.id
amount: int
@dataclass
class SupplierContainsIngredients:
supplier: Supplier
ingredient: Ingredient
supplier: Supplier.id
ingredient: Ingredient.id
delivery_cost: int
delivery_time: int
@ -88,8 +88,8 @@ class SupplierContainsIngredients:
@dataclass
class OrderContainsIngredients:
order: Order
ingredient: Ingredient
order: Order.id
ingredient: Ingredient.id
quantity: int
def dict(self):