Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uml 订阅电子商务-应用程序设计困境_Uml - Fatal编程技术网

Uml 订阅电子商务-应用程序设计困境

Uml 订阅电子商务-应用程序设计困境,uml,Uml,我正在设计一个为订阅会员提供优质内容的应用程序。因此,该应用程序包括电子商务功能,因此用户可以购买订阅。下面是到目前为止UML静态图的草稿。 在为保存订阅信息的数据库表编写DDL时,它似乎应该同时具有Users表和Payments表的外键。然而,这似乎违反了一些基本的数据库设计概念,因为可以通过查看Orders表来确定哪个付款来自哪个用户。是否有比图中所示更好的方法来设计类以消除冗余? 你有冗余,真的是一个伟大的冗余,因为你没有选择导航的方向。无箭头关联意味着双向关联。您有时可以使用它,但不是

我正在设计一个为订阅会员提供优质内容的应用程序。因此,该应用程序包括电子商务功能,因此用户可以购买订阅。下面是到目前为止UML静态图的草稿。

在为保存订阅信息的数据库表编写DDL时,它似乎应该同时具有Users表和Payments表的外键。然而,这似乎违反了一些基本的数据库设计概念,因为可以通过查看Orders表来确定哪个付款来自哪个用户。是否有比图中所示更好的方法来设计类以消除冗余?

  • 你有冗余,真的是一个伟大的冗余,因为你没有选择导航的方向。无箭头关联意味着双向关联。您有时可以使用它,但不是在所有连接上都可以!如果订单只有一个指向付款和用户的方向导航,您的问题就会消失
  • 您尚未连接购物车和订单。通常它们紧密相连1:(0..1)。或者将订单设置为购物车的泛化。购物车需要日期吗?真正地但订单上应该有更多的信息——信息、送货等。或者订阅有一些特殊的逻辑?那你这里也没有
  • 不要使用“包含”这个词,而是使用聚合-共享和合成
  • “has”应该用
    /
    最终所有权
    表示,而不是用文字。你有他们,谁有谁
  • 除关联外,“激活”应显示为依赖项(如果存在)
  • 我建议将用户帐户(仅用于识别/登录需要)和使用信息(地址和其他内容)分开
  • 项目和订单中的项目更接近。使用泛化,而不是“是a”。此外,订购后,订单中的项目将被克隆并获得固定价格。那在哪里
事实上,图表的逻辑并不明显。考虑制作一些更高级的图表。启动的状态机甚至用例