首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可伸缩的数据库设计,用于一般目录项目,与每个用户的特定目录混合?

可伸缩的数据库设计,用于一般目录项目,与每个用户的特定目录混合?
EN

Stack Overflow用户
提问于 2013-01-24 19:01:21
回答 1查看 63关注 0票数 1

我希望有一个威胁的一般目录,将最初用于所有用户。该目录有大约100个威胁。这些威胁与其他模型有关,例如AssetType。一个威胁影响多个asset_types,一个asset_type受到多个威胁的影响。

我的问题是,我希望用户修改目录中的威胁,删除威胁和添加威胁,但目录的修改需要只为他自己,而不是为其他用户。asset_types和关系也是如此。我希望每个用户都能够修改关系,但不是所有用户。

我的方法是,我可以拥有CatalogThreat、CatalogAssetType和CatalogThreatsAssetTypes,这将是通用目录,当创建新用户时,我会将每个catalog_threat复制到一个名为threats的表中,其中每个威胁都与用户相关。但是这样的话,我认为我会有很多的重复,因为我认为用户只会对目录进行很少的修改。

你还有其他选择吗?这是一个好的数据库设计吗?有什么我应该知道的设计模式吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-25 13:12:25

复制所有内容的唯一真正替代方法是对主目录的更改列表进行建模。因此,如果用户从目录中删除了某些内容,您可以将其存储在一个记录中,表示“就像主目录一样,除了Fred已经删除了Threat 3”。如果他们插入了新的关系,您需要存储该关系。

查询此模型将非常困难,因为您将需要选择不存在当前用户的delete的目录记录,并与来自当前用户的任何插入联合。根据您的数据库,您可能能够将其包装在视图中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14499737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档