附加背景:
用户每次购物都可以购买一件或多件商品。我试图找出两种方法的优点/缺点。我已经写出了我认为每个人的优点(不需要调用缺点,因为一个人的Con可以写成另一个的Pro),但我希望得到社区的反馈
方法1:
构建单个模型,例如Items,其中包含事务中每个项目的记录。
优点:
方法2:
构建两个模型,例如,购买和项目,其中,购买是表示该交易的父记录,而项目是表示在该交易中购买的每个项目的子记录。
优点:
答案 0 :(得分:0)
这可能变得非常复杂,过去我使用了更高级的#2版本。您希望尽可能地标准化数据(查找数据库规范化以获取更多信息)以便更容易地运行报告,还要保持数据的一致性并减少重复。在某些实际场景中,并不总是能够完全规范化,并且处理性能考虑也会起到一定的作用 - 如果您完全规范化数据,则将数据拆分为许多小块(例如表中的行),但要重建数据然后,您必须从性能受损的许多位置(例如,多个数据库查询)中检索它。
使用#2,在您对数据进行过深的编码之前,彻底规划如何构建数据。对于结构良好的模型,将来扩展系统应该相当简单。扁平结构可能成为维持的噩梦。