猿问

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

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


慕田峪4524236
浏览 626回答 2
2回答

www说

Model是到概念模型的映射,而不是到表的映射。Model是和模型一致,而不是和数据表一致。模型可以存在一张表,也可以存进多张表。如果是一张表,那么碰巧Model可以和一张数据表一致,如果User这个概念正好是一张表,那么UserModel映射到这张表是自然的,如果User这个概念有多张表来实现,那么UserModel应该映射到是一个JOIN的结果,这并不矛盾,概念是一致的,只不过存储细节不同而已。数据分多少张表存储是底层设计问题,Model如何抽象是上层概念,抽象不应受限于底层存储,而应该隐藏底层存储的细节,这是用Model的目的。明白了这一点,你的选择就多了,无论是user表做冗余,一次查询,还是分表做JOIN,这些只是具体实现,是Model自己内部要处理的问题,都不应该影响你Model本身的接口设计,所以UserModel始终应该包含这些额外数据的成员,只不过具体使用的时候,你可以优化这个它的实现,允许使用它的代码按需加载额外数据,这又是一个实现细节,不改变概念上这些额外数据的存在。

眼眸繁星

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

相关分类

MongoDB
我要回答