为了账号安全,请及时绑定邮箱和手机立即绑定

Model 应该要和数据库表结构一致么?

/ 猿问

Model 应该要和数据库表结构一致么?

慕田峪4524236 2019-02-07 15:07:19

Model 应该要和数据库表结构一致么


查看完整描述

2 回答

?
www说

Model是到概念模型的映射,而不是到表的映射。Model是和模型一致,而不是和数据表一致。

模型可以存在一张表,也可以存进多张表。如果是一张表,那么碰巧Model可以和一张数据表一致,如果User这个概念正好是一张表,那么UserModel映射到这张表是自然的,如果User这个概念有多张表来实现,那么UserModel应该映射到是一个JOIN的结果,这并不矛盾,概念是一致的,只不过存储细节不同而已。数据分多少张表存储是底层设计问题,Model如何抽象是上层概念,抽象不应受限于底层存储,而应该隐藏底层存储的细节,这是用Model的目的。

明白了这一点,你的选择就多了,无论是user表做冗余,一次查询,还是分表做JOIN,这些只是具体实现,是Model自己内部要处理的问题,都不应该影响你Model本身的接口设计,所以UserModel始终应该包含这些额外数据的成员,只不过具体使用的时候,你可以优化这个它的实现,允许使用它的代码按需加载额外数据,这又是一个实现细节,不改变概念上这些额外数据的存在。

查看完整回答
反对 回复 2019-03-10
?
眼眸繁星

做好保持一致啊,这样时间久远自己也不会忘记,并且自己开发其他项目时,别的同事可以更快速的接手你之前的工作。

查看完整回答
反对 回复 2019-03-10

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信