假设有人在找工作,我有一份工作 list 。 所以我有两个表: 人和工作。 现在我有一个人的技能列表,我有一个工作要求的技能列表。
最好有一个这样的技能表:
CREATE TABLE skills_reference
(
id INT,
reference_id INT, -- can reference people(id) or job(id)
reference ENUM('person','job'),
skill FOREIGN KEY REFERENCE skills(id)
)
或者有两张表,一张用于 people_skills,一张用于 jobs_skills。 哪一个会提供更好的性能结果?
谢谢。
最佳答案
IMO,您应该制作两张表,一张用于job_skill(job_id, skill_id)
,一张用于person_skills(person_id,skill_id)
。两者都指向相同的技能表。
我应该指出,性能只是一个考虑因素,在很多很多情况下,您应该首先关注数据模型的逻辑合理设计,然后才是性能(如果它确实是一个问题的话)。
对于 RDBMS 工作,在许多情况下 (80%),最简洁的设计对于性能也是最好的。
关于sql - 通常在数据库设计中,一张表有两个引用或一张表哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1985293/