我有一个网站,用户可以在其中发布照片、视频、链接、文章和事件。
但现在困难的部分来了(对我来说): 我希望用户能够附加照片、视频以及事件和/或文章的链接。
这方面的最佳实践是什么?我是否应该创建另一个表来将它们相互链接:
[media2articles]
m_id, m_type, media_id, m_article_id
[media2events]
m_id, m_type, media_id, m_events_id
或者我应该像这样向当前表添加一些字段:
[videos]
v_id, v_file, **v_article_id, v_event_id**
或者还有其他办法吗?
最佳答案
这取决于您的数据之间的关系类型。另请记住,您需要考虑它将来的关系,因为更改架构可能会很痛苦。
- 如果一张照片始终是单个事件,且绝不会多于一个,也不会少于一个,那么您应将事件 ID 放入照片表中。
- 如果一个事件始终只有一张照片,而不会更多,并且一张照片可以属于多个事件,那么您可以将照片 ID 放入事件表中。
- 如果一个事件可以包含多张照片,并且一张照片可以包含多个事件,则您可以创建第三个表。
- 如果每个事件都有一张照片,并且每张照片都属于一个事件,那么您可能会进行属性拆分,也许这两个表实际上应该是一个。 (我猜不会。)
这是基本的关系建模;阅读它将对您的数据库设计有很大帮助。
关于php - MySQL数据库设计——关系表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4147153/