mysql - 创建通知数据库表的最佳实践

标签 mysql sql ruby-on-rails database foreign-keys

我对如何最好地做到这一点感到困惑,并希望社区能够对此有所启发(也许您有经验,或者有解决这个问题的创新方法!)。

我有一个应用程序,其中包含用户、事件和组。我正在尝试制作一个通知表,该表将为用户存储他们被邀请参加事件、群组或与 friend 联系的通知。不,我不是在构建 Facebook 哈。

通知中应该有一条消息,内容如下:“您已被邀请加入 Syracuse Runners Club”,然后您单击它以跳转到 Runners Club 组对象。

所以,到目前为止,我最好的猜测是有一个结构如下的表:

通知

id | status (unread/read) | message | reference_object_id |

——其中引用 object_id 指向外部对象的 id。但是,问题是我不知道外部 object_id 属于哪个表。

我的最终目标是将它以 JSON 形式呈现,这样我就可以拥有以下内容:

{ 
  message:"You're invited blah blah", 
  status:"unread", 
  reference_object: {
    id:1,
    name:"Runners Club"
  }
}

我正在使用 MySQL 和 Ruby on Rails。

最佳答案

如果您使用的是 MySQL,请添加另一列来指定外部对象表。

编号 |状态(未读/已读) |留言 | reference_object_id | reference_object_table

现在您可以在任何表中引用另一个对象。

关于mysql - 创建通知数据库表的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10627887/

相关文章:

mysql - SQL 查询中的\% 和\\是什么意思?

sql - 扫描CSV文件后生成DDL SQL创建表语句

mysql - 在 Ruby 中使用哈希向 MySQL 文本字段字符串添加唯一索引

MySQL:如何根据最高修订号计算数据记录集?

php - 阻止表单在页面加载时提交

Java错误net.ucanaccess.jdbc.UcanaccessSQLException : unexpected token: ; required: (

sql - 组合 SQL 查询以将来自 1 的结果作为第二个参数传递(SQL Server)

Ruby on Rails 中的 MySQL 性能

ruby-on-rails - Searchkick AWS凭证到期

php - 如何使用 PHP 准备好的语句插入 MySQL