2

我需要帮助来定义模型之间的关系。

我有 2 个模型:

  1. 用户
  2. 产品

用户拥有许多产品,而产品仅归一个用户所有。

我的用例: 登录的用户可以访问他个人帐户中的一些信息: - 显示他的所有产品 - 添加新产品

稍后我想添加用例,例如:任何用户都可以在某个屏幕上看到任何产品(并且知道产品的所有者)。

所以,我可以这样定义模型:

A) 一对多

class User{

private Set<Product> products;
..
}

class Product{

...
} 

B) 多对一

class User{

 ..
}

class Product{

 private User owner;
}

哪个是最好的?一对多还是多对一?

因为我的用例显示登录用户的产品我认为最好选择一对多

4

1 回答 1

0

最可能的选择是“一对多”,因为用户拥有产品。他有产品(所以有一个清单)。在第二个选项中,您会说:产品拥有用户。

至于要求:

  • 展示他所有的产品
    • 您将显示他的所有产品还是显示以用户为所有者的所有产品。
  • 添加新产品
    • 与将用户添加为所有者的产品相比,用户将产品添加到他的列表中。

最后一个要求非常棘手:“任何用户都可以在某个屏幕上看到任何产品(并且知道产品的所有者)”。现在,如果这是主要功能,那么第二种设计会更好,因为它会更容易从产品中找到所有者。尽管用例描述似乎非常关注一对多设计。

于 2013-09-12T20:43:21.717 回答