首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这两种数据模型有什么区别吗?

这两种数据模型有什么区别吗?
EN

Software Engineering用户
提问于 2021-06-14 21:01:27
回答 1查看 63关注 0票数 0

假设我想在数据库中存储一个userID,他们的国籍,如果他们来自英国,他们的英国护照号码。

我可以用一个userID作为主键、国籍作为属性和英国护照号作为属性来建模,只有当国籍是英国时才存在。

作为另一种选择,我可以有两个表,一个以userID作为主键,国籍作为属性,另一个表以UserId为主键,英国护照号为属性。

如果我使用一个面向文档的无模式数据库,那么这两种设计之间有什么区别吗?这两种方法都具有O(1)查询的复杂性,我看到的唯一不同是,在第一种方法中,如果要检索护照号,就必须获取整个对象。是否还有另一个原因,我更喜欢第二种方法,这似乎也是有点复杂的发展?

我对关于可维护性和扩展性的争论很感兴趣。

EN

回答 1

Software Engineering用户

发布于 2021-06-15 08:17:30

在语义上,在模型的当前状态下,没有真正的区别。在非功能方面,您可以(以一种更简单的方式)将单独的访问权限放置到UKPassport表中,但是应该检查这样的需求是否确实是必需的。

可能带来不同的是潜在的演变:一旦您想要添加更多与护照相关的属性,而这些属性不是用户的属性(如过期日期、颜色、大小等),将护照建模为自己的实体是有意义的。但是,在这些需求“到达”时重构模型可能还早,这取决于您的开发过程中在稍后的时间点更改数据模型是多么容易。

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

https://softwareengineering.stackexchange.com/questions/429338

复制
相关文章

相似问题

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