diff --git a/README.md b/README.md index 77f662c..9c30e44 100644 --- a/README.md +++ b/README.md @@ -1 +1,162 @@ -# Readme File \ No newline at end of file +# Readme File + +> ## Datenbank Design +> ![user](assets/images/DB_Design_user.png) +> ![products](assets/images/DB_Design_products.png) + +```sql +Table categories { + categoryID int [pk] + name varchar(255) + parentCategoryID int +} + +Ref: "categories"."parentCategoryID" < "categories"."categoryID" + +Table brands { + brandID int [pk] + name varchar(255) +} + +Table products { + productID int [pk] + categoryID int + brandID int + model varchar(255) + ean varchar(20) + description text +} + +Ref: "products"."categoryID" < "categories"."categoryID" +Ref: "products"."brandID" < "brands"."brandID" + +Table shops { + shopID int [pk] + name varchar(255) + website varchar(255) +} + +Table offers { + offerID int [pk] + productID int + shopID int + price decimal(10,2) + shippingCost decimal(10,2) + inStock boolean + productURL varchar(500) + lastUpdated timestamp +} + +Ref: "offers"."productID" < "products"."productID" +Ref: "offers"."shopID" < "shops"."shopID" + +Table attributes { + attributeID int [pk] + name varchar(255) + unit varchar(50) + dataType varchar(20) +} + +Table categoryAttributes { + categoryID int + attributeID int +} + +Ref: "categoryAttributes"."categoryID" < "categories"."categoryID" +Ref: "categoryAttributes"."attributeID" < "attributes"."attributeID" + +Table productAttributes { + productID int + attributeID int + valueString varchar(255) + valueNumber decimal(10,2) + valueBool boolean +} + +Ref: "productAttributes"."productID" < "products"."productID" +Ref: "productAttributes"."attributeID" < "attributes"."attributeID" + + + + + + + + + + + +Table users { + userID int [pk] + email varchar(255) + passwordHash varchar(255) + displayName varchar(255) + isActive boolean + createdAt timestamp +} + +Table roles { + roleID int [pk] + name varchar(50) +} + +Table userRoles { + userID int + roleID int +} + +Ref: "userRoles"."userID" < "users"."userID" +Ref: "userRoles"."roleID" < "roles"."roleID" + +Table userFavorites { + userID int + productID int + createdAt timestamp +} + +Ref: "userFavorites"."userID" < "users"."userID" +Ref: "userFavorites"."productID" < "products"."productID" + +Table priceAlerts { + alertID int [pk] + userID int + productID int + targetPrice decimal(10,2) + isActive boolean + createdAt timestamp +} + +Ref: "priceAlerts"."userID" < "users"."userID" +Ref: "priceAlerts"."productID" < "products"."productID" + +Table notifications { + notificationID int [pk] + userID int + title varchar(255) + message text + isRead boolean + createdAt timestamp +} + +Ref: "notifications"."userID" < "users"."userID" + +Table reviews { + reviewID int [pk] + userID int + productID int + rating int + comment text + createdAt timestamp +} + +Ref: "reviews"."userID" < "users"."userID" +Ref: "reviews"."productID" < "products"."productID" + +Table userSessions { + sessionID varchar(128) [pk] + userID int + expiresAt timestamp +} + +Ref: "userSessions"."userID" < "users"."userID" +``` \ No newline at end of file diff --git a/assets/images/DB_Design_products.png b/assets/images/DB_Design_products.png new file mode 100644 index 0000000..2ecc253 Binary files /dev/null and b/assets/images/DB_Design_products.png differ diff --git a/assets/images/DB_Design_user.png b/assets/images/DB_Design_user.png new file mode 100644 index 0000000..1d7da15 Binary files /dev/null and b/assets/images/DB_Design_user.png differ