Files
lettersoup-online/001_documentation/Requirements/REQ0006/schema.dbml
2025-04-22 23:03:15 +08:00

267 lines
7.5 KiB
Plaintext

// Users table with auth fields
Table Users {
// system field
id text [pk]
tokenKey text [not null]
created datetime [default: `now()`]
updated datetime
password text [not null]
// value field
email text [not null]
emailVisibility boolean
verified boolean
name text
avatar file
}
// LessonTypes stores different types of lessons
// lesson_types, lesson_type
Table LessonTypes {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`] // timestamp when the lesson type was created
updated datetime // timestamp when the lesson type was last updated
// value field
name text // changed from varchar to text
type text // changed from varchar to text
pos integer
visible text
field date
}
// LessonCategories stores categories of lessons
// lesson_categories, lesson_category
Table LessonCategories {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`] // timestamp when the category was created
updated datetime // timestamp when the category was last updated
// value field
cat_name text // changed from varchar to text
cat_image_url text // new field
cat_image file // changed from varchar to file
pos integer
lesson_id integer [ref: > LessonTypes.id] // foreign key referencing LessonTypes.id
description text // new field
remarks text // changed from varchar to text
visible text // new field
}
Table Helloworlds {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`] // record create time
updated datetime // record update time
hello text // new field
}
Table UserMetas {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`]
updated datetime
// value field
helloworld text // changed from varchar to text
meta json // new field
user_id text [ref: > Users.id] // changed type and reference
state text // new field
avatar file // changed from blob to file
role text // new field
}
Table QuizCategories {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`]
updated datetime
// value field
cat_name text // changed from varchar to text
cat_image text // changed from varchar to text
init_answer json // new field
}
// stores all questions of matching frenzy
Table QuizMatchings {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`] // record create time
updated datetime // record update time
// value field
word text // changed from varchar to text
word_c text // changed from varchar to text
cat_id text [ref: > QuizCategories.id] // changed type and reference
}
// QuizListening stores all listening quiz data
Table QuizListenings {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`] // record create time
updated datetime // record update time
// value field
sound file // changed from varchar to file
word text // changed from varchar to text
cat_id text [ref: > QuizCategories.id] // changed type and reference
}
// stores all categories of connectives revision quiz
Table QuizConnectivesCategories {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`] // record create time
updated datetime // record update time
// value field
cat_name text // changed from varchar to text
cat_image file // changed from varchar to file
}
// stores all questions of connectives revision quiz
Table QuizConnectives {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`] // record create time
updated datetime // record update time
// value field
question_fh text // changed from varchar to text
question_sh text // changed from varchar to text
modal_ans text // changed from varchar to text
cat_id text [ref: > QuizConnectivesCategories.id] // changed type and reference
}
// Lessons stores all lessons in the database
Table Vocabularies {
// system field
id text [pk] // changed from int to text
created datetime [default: `now()`] // timestamp when the lesson was created
updated datetime // timestamp when the lesson was last updated
// value field
image file // changed from varchar to file
sound file // changed from varchar to file
word text // changed from varchar to text
word_c text // changed from varchar to text
sample_e text // changed from varchar to text
sample_c text // changed from varchar to text
cat_id text [ref: > LessonCategories.id] // changed type and reference
category text // changed from varchar to text
lesson_type_id text [ref: > LessonTypes.id] // changed type and reference
}
// Listening Practice Quiz Categories
// store listening practice category, (LpCategories, LpCategory)
Table QuizLPCategories {
// system fields
id text [pk]
created datetime [default: `now()`]
updated datetime
// value fields
cat_name text
cat_image file
pos number
init_answer json
visible text
slug text
remarks text
description text
}
// Listening Practice Quiz Questions
Table QuizLPQuestions {
id text [pk] // changed from int to text
created datetime [default: `now()`]
updated datetime
word text // changed from varchar to text
sound file // changed from blob to file
cat_id text [ref: > QuizLPCategories.id] // changed type and reference
cat_name text // new field
cat_image file // new field
pos number // new field
init_answer json // new field
visible text // new field
slug text // new field
remarks text // new field
description text // new field
}
// Matching Frenzy Quiz Categories
Table QuizMFCategories {
id text [pk] // changed from int to text
created datetime [default: `now()`]
updated datetime
cat_name text // changed from varchar to text
cat_image file // changed from blob to file
pos number // changed from integer to number
init_answer json
visible text // new field
}
// Matching Frenzy Quiz Questions
Table QuizMFQuestions {
id text [pk] // changed from int to text
created datetime [default: `now()`]
updated datetime
word text // changed from varchar to text
word_c text // changed from varchar to text
cat_id text [ref: > QuizMFCategories.id] // changed type and reference
visible text // new field
sound file // new field
cat_image file // new field
}
// Connectives Revision Quiz Categories
Table QuizCRCategories {
id text [pk] // changed from int to text
created datetime [default: `now()`]
updated datetime
cat_name text // changed from varchar to text
cat_image file // changed from blob to file
pos integer
init_answer json
}
// Connectives Revision Quiz Questions
Table QuizCRQuestions {
id text [pk] // changed from int to text
created datetime [default: `now()`]
updated datetime
question_fh text // changed from varchar to text
question_sh text // changed from varchar to text
modal_ans text // changed from varchar to text
cat_id text [ref: > QuizCRCategories.id] // changed type and reference
options json // new field
}
// Test table
Table t1 {
id text [pk] // changed from int to text
created datetime [default: `now()`]
updated datetime
hello text // changed from name to hello
test_file file // new field
}
// Customers table
Table Customers {
id text [pk] // new table
created datetime [default: `now()`]
updated datetime
name text
email text
phone text
quota number
status text
avatar_file file
cat_id text [ref: > QuizMFCategories.id] // refer to a single user in `Users` table
}