组织DAO课程

时间:2012-07-09 00:40:40

标签: class associations

我想知道在类关联方面组织DAO类的最佳方法。

例如。假设您有一个Customer表和一个Order表,并且您想要访问与客户关联的订单,哪里是获得该方法的最佳位置,例如getCustomerOrder(int customerid,int orderid)?

客户类? 订单类? CustomerOrder类?

2 个答案:

答案 0 :(得分:0)

  • 看起来您正在使用CustomerOrder类(中间的表格)。
  • 客户与订单之间的关系是C * .. * O}(多对多)。
  • 我建议将getCustomerOrder(int cusomerid, int orderid)放在此类中,因为在运行时类形式实例,形式参数所需的值应该在Customer类和Order类的范围内。
  • 如果CustomerOrder是中间的表,则相关表架构的引用完整性应具有强制执行此用法的约束。

我喜欢这个链接,以获得中间枢轴或表格的一个很好的例子

pivot table

答案 1 :(得分:0)

我实际上并没有使用这些。 Customer Class,Order Class和CustomerOrder类都是有关业务域的类。 getCustomerOrder(int customerid,int orderid)方法是关于如何持久保存数据的方法。出于许多不同的原因(例如SoCSRP等等...)我会在一个类中处理将数据持久存储到您希望持久存储的位置。一个选项可能是DBPersistenceSystem或类似的东西。这也有帮助,因为getCustomerOrder(int customerid,int orderid)或getCustomer(int customerid)或getOrder(int orderid)的代码非常相似。如果你把它们全部放在同一个类或一组类中,你最终会得到一个更好的设计。