【发布时间】:2018-10-28 03:31:37
【问题描述】:
我有两张桌子:
表一是:
-
product_id (INT 11)- PK,自动增量 -
category (INT 11)- 索引,FK 到Table2.category_id product (VARCHAR 255)
表2是:
-
category_id (INT11)- PK,自动增量 category_name (VARCHAR 255)
现在,当向表 1 添加新产品时,我需要 INSERT 类别和产品。但是,category 是一个代理键,它与Table2.category_id 列相关(每个类别都有一个列),这意味着当我插入时,我并不知道category_id,只知道category_name。
您知道如何高效地完成这项工作吗?
或者我应该放弃代理键并完全使用自然键吗?
谢谢
【问题讨论】:
-
我不关注。如果您知道产品所属的类别,那么这里的问题是什么?
-
我知道类别,但我不知道 category_id(当然,除非我查询 Table2)。并且 Table1 只接受 INT 11,因为它链接到表 2。我不知道
category_id,只是名称。 -
所以你是说你知道文本
category_name,但不知道category_id?这似乎不寻常。通常,您的应用程序(例如 PHP)将在幕后处理category_id,因此这是可用的。 -
正是……是吗?我认为设置多个表和使用代理键时这种情况会很常见,但我没有任何经验......你有什么建议来处理它吗?我有很多这样设置的表。
-
我可以给你一个答案,但我感觉不对。
标签: mysql database insert mariadb