76 lines
1.3 KiB
Plaintext
76 lines
1.3 KiB
Plaintext
// Use DBML to define your database structure
|
|
// Docs: https://dbml.dbdiagram.io/docs
|
|
|
|
Table users {
|
|
id integer [primary key]
|
|
username varchar unique
|
|
email varchar unique
|
|
password varchar
|
|
created_at timestamp
|
|
is_active bool
|
|
role integer
|
|
personalgroup integer
|
|
}
|
|
|
|
Table groups {
|
|
id integer [primary key]
|
|
name varchar
|
|
owner integer
|
|
}
|
|
|
|
Table groupMembership {
|
|
membershipid integer [primary key]
|
|
groupid integer
|
|
userid integer
|
|
moderator bool
|
|
}
|
|
|
|
|
|
Table roles {
|
|
id integer [primary key]
|
|
name varchar
|
|
description varchar
|
|
level integer
|
|
}
|
|
|
|
Table reciepts {
|
|
id integer [primary key]
|
|
groupid integer
|
|
data nvarchar
|
|
created_at timestamp
|
|
updated_at timestamp
|
|
}
|
|
|
|
// Table imageOwnership {
|
|
// ownershipid integer [primary key]
|
|
// receiptid integer
|
|
// imageid integer
|
|
// }
|
|
|
|
Table images {
|
|
id integer [primary key]
|
|
receiptid integer
|
|
created_at timestamp
|
|
path varchar
|
|
added bool
|
|
}
|
|
|
|
|
|
|
|
Ref: "users"."personalgroup" > "groups"."id"
|
|
|
|
Ref: "groups"."owner" > "users"."id"
|
|
|
|
Ref: "groups"."id" < "groupMembership"."groupid"
|
|
|
|
Ref: "groupMembership"."userid" < "users"."id"
|
|
|
|
Ref: "roles"."id" < "users"."role"
|
|
|
|
// Ref: "reciepts"."id" < "imageOwnership"."receiptid"
|
|
|
|
// Ref: "images"."id" < "imageOwnership"."imageid"
|
|
|
|
Ref: "reciepts"."id" < "images"."receiptid"
|
|
|
|
Ref: "groups"."id" < "reciepts"."groupownerid" |