数据库设计:我应该如何在 MySQL 数据库中存储用户的新闻偏好?
Database Design: How should I store user's news preferences in MySQL database?
我正在尝试实现个性化新闻聚合器。我必须在数据库中保存用户的首选新闻来源。我是否应该将用户喜欢的所有新闻源都存储为 JSON 字符串,然后在检索后对其进行解码?
feeds | user
或者每个新闻来源都有单独的栏目(没有新闻来源大约是 200)?
feed_name1 | feed_name2 | ..... | user
听起来像是多对多的情况。使用一个人 table、一个新闻提要 table 和一个 person_newsfeed table 的解决方案可能是合适的。网上有很多关于此的文章,任何好的数据库理论书籍(或类似 Oracle 的书籍:完整参考)都应该详细介绍这一点。
这篇文章是一个很好(但很短)的总结:
http://www.databaseprimer.com/pages/relationship_xtox/
Oracle8 The Complete Reference 在第 35 页左右讨论了第三范式时的 worker、skill、workerskills 示例。
我正在尝试实现个性化新闻聚合器。我必须在数据库中保存用户的首选新闻来源。我是否应该将用户喜欢的所有新闻源都存储为 JSON 字符串,然后在检索后对其进行解码?
feeds | user
或者每个新闻来源都有单独的栏目(没有新闻来源大约是 200)?
feed_name1 | feed_name2 | ..... | user
听起来像是多对多的情况。使用一个人 table、一个新闻提要 table 和一个 person_newsfeed table 的解决方案可能是合适的。网上有很多关于此的文章,任何好的数据库理论书籍(或类似 Oracle 的书籍:完整参考)都应该详细介绍这一点。
这篇文章是一个很好(但很短)的总结: http://www.databaseprimer.com/pages/relationship_xtox/
Oracle8 The Complete Reference 在第 35 页左右讨论了第三范式时的 worker、skill、workerskills 示例。