每个用户看到的数据库不同 - “多用户”/“多视图”数据库?

时间:2010-09-14 08:09:58

标签: database multi-user

是否存在允许多个观点的数据库类型的现有实现甚至名称?我的意思是,例如,如果一个用户更改了文章的标题,则该更改将仅对该特定用户可见,并且其他所有人都将看到原始标题。如果多个用户将其更改为相同的新标题,则新标题将成为数据库的“主视图”或数据库的“未过滤视图”,由数据库或应用程序启动。

我在C#中编码并且熟悉SQL并从MongoDB开始,但问题是关于概念以及它的抽象,实现或设计模式是否存在。

1 个答案:

答案 0 :(得分:0)

如果您的“观点”完全分开,您可以为每个用户使用新的数据库。

从你的问题来看,你似乎想要有一定程度的相互联系。也许每个人都可以看到任何用户创建的文章?它只是在创建之后才变为私有变化吗?原作者的更新怎么样?

我认为您只需要指定所需的行为,并设计一个可以处理该行为的数据库。

一种解决方案可能是使用(article)id和用户id作为表的键。这样您就可以完全替换特定用户的内容。假设你想找到文章123,如用户456所见,或者如果该用户没有编辑它,如用户789所见,或者 用户没有编辑它,只需选择任何版本:

SELECT * FROM articles WHERE id = 123 ORDER BY user_id = 456 DESC, user_id = 789 DESC LIMIT 1