我网站的用户可以上传文件。在这个问题的帮助下,我提出了两种用于建模文件状态的设计。
示例状态为 -已删除、待处理、禁止、上传
设计 A - 单独的表格
文件-file_id(pk) | user_id(fk) | 文件名
禁止文件- file_id(fk) | 禁止原因 | 管理员用户 | 时间
已删除的文件- file_id(fk) | 永久删除 | 时间 | 删除者
待处理文件- file_id(fk) | 开始时间 | 等待
设计 B - 数据透视表和单独的信息表(两者)
文件-file_id(pk) | user_id(fk) | 文件名
状态- status_id(pk) status_text
文件状态- file_id(fk) | status_id(fk) | info_id(fk) <--这链接到另一个表中的记录,该表存储有关此状态的信息,例如(ban_reason、admin_user、time)
禁止信息- info_id(fk) | 禁止原因 | 管理员用户 | 时间
已删除信息- info_id(fk) | 永久删除 | 时间 | 删除者
待处理信息- info_id(fk) | 开始时间 | 等待
我对设计A的主要关注点是,选择文件时,我必须在几个表上加入以检查它们是否被禁止等。设计B旨在防止执行连接的需要,因为我只需要与一张表加入.
你会推荐哪种设计?
设计 A 的选择查询会不会太慢?