是否存在允许多个观点的数据库类型的现有实现甚至名称?我的意思是,例如,如果一个用户更改了文章的标题,则该更改将仅对该特定用户可见,并且其他所有人都将看到原始标题。如果多个用户将其更改为相同的新标题,则新标题将成为数据库的“主视图”或数据库的“未过滤视图”,由数据库或应用程序启动。
我在C#中编码并且熟悉SQL并从MongoDB开始,但问题是关于概念以及它的抽象,实现或设计模式是否存在。
答案 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