不同用户的不同看法
Different views for different users
假设我有一个包含 3 个 table 的数据库:Stream
、Tag
和 Post
- 流有一个标签。多个流可以有相同的标签。
- 流归一个用户所有。
- 一个标签有很多post个。
- 不同的标签可以有相同的post.
- 每个打开他的流的用户都会得到它的 posts(通过标签)并且可以删除(或隐藏)他不想看到的 posts(但只为他自己) ,不适合其他人)。
实现这一目标的合适方法是什么?显然,我需要在 post 上使用某种 软删除 标志。我目前有 2 个想法:
- 创建另一个 table,它将作为包含列
stream_id
、post_id
和 is_deleted
的流的视图
- 将
deleted
列添加到 Stream
,其中包含 JSON 个已删除 post 的 ID 数组。这种方法的问题是基于 is_deleted 状态进行查询。
有没有更好的方法?
注意:目前,我需要 Tag
保留在它自己的 table 中,而不是将其作为文本存储在 Stream
中的列中
您应该有一个包含 post_id、is_deleted 和 user_id 列的新 table。
通过这种方式,您可以轻松管理它,否则根据您的选择考虑,这将是繁忙的工作。
table 名称类似于交叉引用 table 例如:user_deleted_posts_xref
假设我有一个包含 3 个 table 的数据库:Stream
、Tag
和 Post
- 流有一个标签。多个流可以有相同的标签。
- 流归一个用户所有。
- 一个标签有很多post个。
- 不同的标签可以有相同的post.
- 每个打开他的流的用户都会得到它的 posts(通过标签)并且可以删除(或隐藏)他不想看到的 posts(但只为他自己) ,不适合其他人)。
实现这一目标的合适方法是什么?显然,我需要在 post 上使用某种 软删除 标志。我目前有 2 个想法:
- 创建另一个 table,它将作为包含列
stream_id
、post_id
和is_deleted
的流的视图
- 将
deleted
列添加到Stream
,其中包含 JSON 个已删除 post 的 ID 数组。这种方法的问题是基于 is_deleted 状态进行查询。
有没有更好的方法?
注意:目前,我需要 Tag
保留在它自己的 table 中,而不是将其作为文本存储在 Stream
您应该有一个包含 post_id、is_deleted 和 user_id 列的新 table。 通过这种方式,您可以轻松管理它,否则根据您的选择考虑,这将是繁忙的工作。 table 名称类似于交叉引用 table 例如:user_deleted_posts_xref