gpt4 book ai didi

mysql - 根据列值链接另一个表

转载 作者:行者123 更新时间:2023-11-29 09:29:21 24 4
gpt4 key购买 nike

enter image description here

嗨,我正在使用 MySQL 和 Squalize ORM (NodeJS) 设计一个项目目录。

假设我有一个产品列表,根据其类别(在本例中为 attributes_id),具有不同的属性。我想通过使用带有适当属性表的 JOIN 语句来获取产品。该设计应该是可扩展的,因为我们将有一百多个属性表。

该语句大致如下所示:

 JOIN
if ( product.attributes_id == 1 ) 'attributes_car'
elseif ( product.attributes_id == 2 ) 'attributes_food'

但是 elseif 案例的数量稍后将增加到一百多个。

那么问题是如何设计attributes_id?使其成为数据库元数据(如 INFORMATION_SCHEMA)的外键以指向另一个表是一个好主意吗?我应该引入另一个表来管理这种关系吗?

选项之一是动态 SQL,但我认为这不是一个好主意,因为 ifelse 情况应该会增加。

或者我应该放弃设计查询并使用 ORM 在 NodeJS 端实现这样的逻辑?

谢谢!

最佳答案

一种解决方案是创建一个额外的表来存储 attribute_idtable_name

    Create table attibute_tablename(
attribute_id int(11),
table_name varchar(25),
PRIMARY KEY (attribute_id, table_name)
)

如果需要,您还可以向 product 表添加外键。那么您只需要为添加的每个新项目插入此表

关于mysql - 根据列值链接另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59032988/

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