gpt4 book ai didi

sql - 使用一个 "primary"值实现多对多

转载 作者:行者123 更新时间:2023-11-29 12:06:44 25 4
gpt4 key购买 nike

我有很多产品,每个产品都可以属于很多类别。

products: id, ...
products_categories: product_id, category_id
categories: id, ...

现在我想要很多产品,每个产品都有一个主类别和 0 个或多个次级类别。我可以想到两种在 SQL 中对此建模的方法。

  1. is_primary 列添加到 products_categories或者

  2. primary_category_id 列添加到 products

在纯 SQL 和/或 ActiveRecord 中实现它的最佳方法是什么?我正在使用 PostgreSQL,因为它物有所值。

最佳答案

我会选择第一个选项,除非我有充分的理由选择 2(比如获得主要类别时额外加入的成本)

原因:您可能无论如何都需要将主要类别添加到 product_category 表(以便在查询中以统一和简单的方式使用它,例如获取产品的所有类别)选项 1 避免重复主要类别,因此更简单

关于sql - 使用一个 "primary"值实现多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5738426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com