单列在MySQL

时间:2016-04-11 02:55:22

标签: mysql foreign-keys foreign-key-relationship

我看到了几个类似的问题,但从来没有完全是我想要做的事情。

所以我有一个计划表,其计划ID有2列作为主键(plan_id和frequency),例如:
id:1,频率:1(计划1,每月收费)
id:1,频率:6(计划1,每6个月收费)
id:1,频率:12(计划1,每12个月收费)
id:2,频率:1(计划2,每月收费)
......

然后在表格"网站"中,每一行都会指向其中一个计划。有没有办法只有一个列以某种方式指向计划表中的2列的组合?网站表已有很多列,我试图避免再增加两列。

评论后更新:
我考虑过为每个不同版本的计划设置不同的plan_id,但它们需要全部相关,因此计划1的频率为1,6,12都需要链接

1 个答案:

答案 0 :(得分:0)

我找到了解决方案!

我在删除我的问题或提供我的答案之间犹豫不决,因为它可能过于具体。但是为了以后它会帮助其他人,这里是:

这很简单以至于我之前没有这样做感到愚蠢,我只是添加了另一个专栏" group"这将在创建新的独立计划时为auto_increment,或者将与所需的组一起设置为与其他计划相关联。所以我只将主键留在一列上。所以基本上,而不是计划表是这样的:
id:1,频率:1(计划1,每月收费)
id:1,频率:6(计划1,每6个月收费)
id:1,频率:12(计划1,每12个月收费)
id:2,频率:1(计划2,每月收费)
...

就是这样:
id:1,组:1,频率:1(计划1,每月收费)
id:2,组:1,频率:6(计划1,每6个月收费)
id:3,组:1,频率:12(计划1,每12个月收费)
id:4,组:2,频率:1(计划2,每月收费)
...

这样,网站表只需要一个" plan_id"在引用计划的列中,我们可以通过单个ID检索计划,并且我们可以从ID中检索同一组的所有计划。

相关问题