【发布时间】:2013-09-23 15:50:16
【问题描述】:
我网站的用户可以上传文件。在question 的帮助下,我提出了两种用于建模文件状态的设计。
示例状态 - 已删除、待处理、禁止、上传
设计 A - 单独的表格
文件 - file_id(pk) | user_id(fk) |文件名
禁止文件 - file_id(fk) |禁止原因 |管理员用户 |时间
已删除文件 - file_id(fk) |永久删除 |时间 |删除_by
待处理文件 - 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) |永久删除 |时间 |删除_by
待定信息 - info_id(fk) |开始时间 |等待
我的主要关注设计a是在选择文件时,我必须加入几个表来检查它们是否被禁止等等。设计b旨在防止需要执行连接的需要需要加入一张桌子。
您会推荐哪种设计?
设计 A 的选择查询会不会太慢?
【问题讨论】:
标签: mysql database database-design relational-database