如何找到一种方式,使具有相同名称的项目在左侧联接表时不会相互冲突



我已经四处寻找了无数个小时的答案,但找不到太多。我正在做一个食品项目,我想知道是否有办法防止 2 个同名项目与它们的第二张桌子相互碰撞。为了清楚起见,我有 1 张桌子,它们是

  CREATE TABLE cuisine (id int,dish_name varchar(32));
 //2nd table   CREATE TABLE ingrediant (id int,dish_name varchar(32),ingrediant);

我想知道是否假设 2 个人发布了 dish_name = 带有不同成分的比萨饼,当我离开加入时,桌子怎么知道要加入哪一个,因为唯一匹配的是dish_name。

我知道我可以将成分添加到第一个表中,但假设我添加了多达 50 个成分和其他项目,这太多了。

我可以使用的一个例子是Ebay。如果 2 人发布具有完全相同名称的项目,当单击该项目时,它如何知道它是用于哪些信息。希望清楚

如果你能正确地对你的关系进行建模,你就没有这个问题。

您必须在第二个表中定义一个外键,并且外键必须引用第一个表中的主键(或至少一些其他唯一索引字段或字段组合(。如果您计划在第二个表中使用 dish_name 作为外键,这必然意味着dish_name必须在第一个表中是唯一的。

这可能是一个坏主意,因此最好在第二个表中创建一个dish_id外键列并删除dish_name列。

最新更新