我用php / mysql创建了一个webapp。
在我的应用程序中,我有不同的部分,用户提交内容,如照片,新闻,故事,视频等。
所有这些都是单独的部分,其中包含各自的故事详情页面。我想为所有部分应用“Flag as Spam”功能,但与数据库混淆。我应该为每个部分创建单独的表格,例如表格名称video_spam
或photo_spam
,还是应该使用一个包含以下列的表spam_contents
。
如果我需要获取用户标记为垃圾内容的所有视频部分内容,那么我可以在SectionName
和ContentId
的基础上获取该内容。
这是一种好方法,还是任何人都有更好的解决方案。
请帮助,谢谢!
答案 0 :(得分:1)
除非“视频垃圾邮件”具有独特之处,或者“垃圾邮件”等独有的东西,否则您几乎肯定会使用单个表格。
您的情况类似于此supertype/subtype issue。请参阅我对该问题的回复。
答案 1 :(得分:0)
我相信这看起来是最好的方式。拥有一个具有独特目的的集中收藏家是一个设计加上,imho。你肯定可以在每个表格中找到更多的字段(例如,video_table还有'spam_flag','flag_by','flag_date'以及这些行中的任何字段),但我认为这是在创建过程中使你的工作倍增的一部分,当您需要对系统进行调整或更改时,可能会有明显的缺点。
顺便说一句,我已经看到这个结构在几个着名的开源Bullettin Boards中实现,用于报告消息和类似信息,所以我相信它是一个有效且优化的设计。
或者,如果你心情愉快,你也可以同时做到:与每个表有关的“详细”内容,以及作为“管理面板报告”的集中式结构。