【问题标题】:Are classes depends on database tables?类是否依赖于数据库表?
【发布时间】:2014-07-20 23:19:02
【问题描述】:

我是设计类图的新手。 由于我的应用程序用作 REST API,我想使用 DTO-DAO 设计模式。对于用户注册模块,DB 包含 3 个表,分别用于用户登录、个人资料和地址。

我是否需要创建 3 个 DTO 和相应的 DAO 来插入/更新用户登录、配置文件和地址? 如果是这样,如果我只创建一个表而不是三个表并在将来删除两个表怎么办?

【问题讨论】:

    标签: database class dao dto


    【解决方案1】:

    无论您采用何种设计模式,数据建模完全取决于您。您的设计模式应基于您的数据建模和您的需求。并非如此,您的数据模型将取决于设计模式,但取决于您的需要

    【讨论】:

      【解决方案2】:

      您可以创建任何您喜欢的 dto 对象。但是,您的数据库设计和 dto 设计都是由系统中的概念(用户/公司/地址等)驱动的,这通常称为域。

      你会经常发现两者非常相似,毕竟它们都代表同一个域!

      至于你是否需要不同的 dto 来进行不同的调用,这真的取决于你。您是否需要不同的类来表示插入/更新调用?有什么不同?通常更新有一个 id(而插入还没有分配一个)。那么为什么不设置两个 update 继承自 insert 但添加 id 属性的地方呢?

      删除 dtos,您可以将其作为更新或仅作为 id 执行。毕竟,为什么要费心填充您要删除的整个对象。我个人只想说

      DeleteUser(int id);
      

      容易多了!

      【讨论】:

      • 谢谢。我将为 3 个表创建 3 个 DTO,如果我只创建一个表而不是三个表并删除两个表怎么办?
      • @satyanarayana 如果您更改数据库,您无疑需要更改您的代码。如果这回答了您的问题,请接受它
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      • 2016-11-10
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多