【发布时间】:2018-12-03 23:48:27
【问题描述】:
我正在尝试做一个支持多种语言的测验。我已经为测验和用户结果创建了数据库架构,但不确定如何以一种好的方式实现对不同语言的支持。
这是现在的样子(请随时指出设计错误):
* User:
- id PK
- name
- email
- password
* Quiz
- id PK
- slug
- title
* Question
- id PK
- quiz_id FK
- question
- image
- message
* Option
- id PK
- question_id FK
- option
- is_right
Relation between user and quiz to store results:
* Result
- id PK
- user_id FK
- quiz_id FK
* Result Details
- id PK
- result_id FK
- question_id FK
- option_id FK (The option user choose)
- is_right
相同的数据库设计但表之间的连接清晰:
我的第一个想法是给测验表做一个父语言表(语言表有很多测验):
* Language:
- id PK
- language_title
* Quiz
- id PK
- language_id FK
- slug
- title
但这只会创建一个语言类别,管理员必须为不同的语言创建一个全新的测验,而不仅仅是添加新的问题文本和选项文本。
如何为多种语言设计测验数据库,以便只有带有文本(标题、消息、问题和选项)的列必须获取新记录,而不必创建全新的测验?
【问题讨论】:
标签: mysql sql database-design relational-database