我正在开发一种与博客结构相似的发布工具,用户有很多帖子和帖子有评论,每条评论都有其所有者等。
我不打算以任何汇总方式使用评论,这意味着评论只会在人们查看相应帖子时显示,但不会做其他事情。
我正在考虑将所有评论存储为{timestamp:{user:comment}}项的JSON,例如,像这样:
{{" 01-04-12-08" :{" John" :"嘿酷!"}},{" 01-04-12-15":{" Mary" :"不,它不是"}},...}
它不是使用数据库表,而是将整个数据结构存储为字符串,然后在需要时将其转回JSON。
这样做是正确的吗?或者我应该创建数据库表?我只觉得创建表格和关联有点过分,因为这些评论除了为每个帖子显示之外都不会被利用。也许不是吗?
答案 0 :(得分:3)
我只觉得创建表格和关联有点过分了......
真的不是。像表格数据的其余部分一样,更容易保留评论,而不是重新发明JSON商店中的半个轮子。你只需编写一个简短的迁移和一个最小的模型类来获得整个ActiveRecord包的技巧。并且您可以更轻松地进行升级,例如线程,通知,垃圾邮件过滤,投票等。
答案 1 :(得分:2)
如果您真的更喜欢使用json而不是表,那么您可能会查看像mongodb这样的文档数据库。但是,根据我的经验,关系数据库更灵活一些,rails可以很容易地与它们交谈。