想象一下,我有三个名为profiles
和profiles_skills
的表skills
。这是一种 HABTM 关系,其中一个配置文件可以具有许多技能,并且一个技能可以属于多个配置文件。
我需要在这些表之间设置外键约束。我的问题是,外键应该是什么方向?例如,我是否这样做:
ALTER TABLE profiles_skills ADD FOREIGN KEY (skill_id) REFERENCES skills(id);
ALTER TABLE profiles_skills ADD FOREIGN KEY (profile_id) REFERENCES profiles(id);
还是我这样做:
ALTER TABLE profiles ADD FOREIGN KEY (id) REFERENCES profiles_skills(profile_id);
ALTER TABLE skills ADD FOREIGN KEY (id) REFERENCES profiles_skills(skill_id);
我从来没有真正遵循过约定,我只是按照我输入的方式去做,没有遇到任何问题。但我一直在想,这是否真的很重要。