我有很多产品,每个产品都可以属于多个类别。
products: id, ...
products_categories: product_id, category_id
categories: id, ...
现在我想要有许多产品,每个产品都有一个主类别和 0 个或多个次要类别。我可以想到两种在 SQL 中对此进行建模的方法。
将
is_primary
列添加到products_categories
或向
产品
添加primary_category_id
列
在纯 SQL 和/或 ActiveRecord 中实现此目的的最佳方法是什么?我正在使用 PostgreSQL,因为它物有所值。
最佳答案
我会选择第一个选项,除非我有充分的理由选择 2(例如获取主要类别时额外加入的成本)
原因:无论如何,您可能需要将主要类别添加到product_category表中(以便在查询中以统一且简单的方式使用它,例如获取产品的所有类别) 选项 1 避免重复主要类别,因此更简单
关于sql - 使用一个 "primary"值实现多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5738426/