SQL新手:像enum()字段一样使用查找表的外键



假设我有字段Ice_Cream。查找表中的当前选择。

我使用Flavor。flavor类似于enum()列表,在Ice_Cream.flavor中存储不是记录ID。如果味道。口味变化,我不想更新冰淇淋:口味。我想让它保持原来的样子

我应该设置Ice_Cream吗?风味作为一个外键,所以我可以看到我的ER图中的值的来源,或不?

如果您希望Ice_Cream.flavor保持创建状态,即使在Flavor (这就是您的问题听起来像)中没有匹配记录,那么您不能创建FOREIGN KEY关系,它将不允许该条件发生在您的数据库中。

此外,如果您将实际的文本Flavor.Flavor字符串存储在Ice_Cream.Flavor中,则没有特别的理由在Flavor中拥有单独的RecordID列。

恕我直言,这里不需要FK,除非您在Flavor表中flavor列中名称旁边有关于某种风味的附加信息。这是因为您不保留ID,您保留了名称并且您希望保留旧值。

我还假定您不希望在Flavor表或Ice_Cream表以外的其他地方保留旧口味。

最后但并非最不重要的是,FK将要求Ice_Cream.flavor中存储的任何风味都存在于Flavor表中。如果我对你的问题理解正确的话,情况并非如此。

相关内容

最新更新