在浏览 9gag.com 时,我想到了一个想法(问题)。假设我想创建一个网站,用户可以在其中添加不同类型的条目。现在每个条目都是不同的类型,需要不同/额外的列。
假设我们可以添加:
- 一个 youtube 视频
- 需要引用的作者姓名和姓氏的引用
- 需要额外游戏类别、描述、类型等的 Flash 游戏。
- 需要链接的图像
现在以上都是条目,并且有一些共同的列(如 id、add_date、adding_user_id 等...)和一些不同/附加的(例如:只有 flash 游戏需要描述或只有图像需要指定 plus_18 列) . 问题是我应该如何组织数据库/代码以将上述所有内容作为条目控制在一起?我可能想订购它们,或者按 add_date 等搜索条目...
我脑海中浮现的想法:
- 添加一个“类型”列,指定它是什么条目,并添加所有可能的列,其中允许 NULL 与此特定类型列无关。但这是非常讨厌的。没有数据集成。
- 为附加数据添加一些带有序列化数据的列,但它使任何过滤都成为地狱。
- 为条目创建主(父)表,并为具体条目类型(它们的附加列/信息)创建单独的表。但在这里我什至不知道我应该如何正确选择数据,而且也很讨厌。
那么解决这个问题的最佳方法是什么?