Database design 当所需数据依赖于“时,规范化架构”;状态字段“;?
我有一个Database design 当所需数据依赖于“时,规范化架构”;状态字段“;?,database-design,Database Design,我有一个User数据库表,其中包含以下字段 Id Username Password Status_id 状态表只包含一个Id和title字段,其值为Pending、On Hold、Active和Completed 当状态更改为Pending时,我想在一个单独的表中记录将用户更改为该状态的管理员的id、date\u changed(datetime)以及他们被挂起的原因(text) 当暂停时,我想知道原因(文本)原因、暂停的日期/时间以及暂停的时间 对于完成的我想知道他们得到的最终成绩(int
User
数据库表,其中包含以下字段
Id
Username
Password
Status_id
状态表只包含一个Id
和title
字段,其值为Pending
、On Hold
、Active
和Completed
当状态更改为Pending
时,我想在一个单独的表中记录将用户更改为该状态的管理员的id、date\u changed(datetime)
以及他们被挂起的原因(text)
当暂停时
,我想知道原因(文本)
原因、暂停的日期/时间以及暂停的时间
对于完成的我想知道他们得到的最终成绩(int)
,任何评论(文本)
和附加文件的文件名
由于状态类型很多,这让我很头疼,我想知道什么样的数据库设计最适合这种情况
如果有人想知道,我将使用PHP表单更改状态值,然后根据所选值输入适当的值
谢谢您不是为每种状态类型创建一个新表,并在每次状态更改时放入一条记录吗?这样,每个状态都有自己的字段
一些连接应该允许您查找所需的任何信息 您可以将日志表用作:
tbl_logs | id | moderator | user | from_status | to_status | timestamp | reason
- 主持人和用户是用户表的外键
- 从\u状态到\u状态是状态表的外键
- 原因是文本
注:
from_status
是冗余的,您可以通过按时间戳对日志进行排序,从先前的到_status
获取其值李>
- 我不确定期末成绩。若它只用于物流目的,你们可以把它放在日志中,若它是用户固有的,你们可以把它放在用户表中
最后,我用它解决了我的问题