我有一个表格可以存储有关类别的信息('猫'可以说)和另一个表(比如说'汽车'意味着它存储有关汽车的信息 - 这是一个蹩脚的例子,但这并不重要)有一个名为'parent_cat_id'应该在'cats'中引用'id'col。 现在出现了问题:来自“汽车”的任何汽车都可能属于一个以上的类别。 有一个明显但非常蹩脚的解决方案:在parent_cat_id中存储一个分隔的数字列表,但是,如果我应用它,我不能有任何外键约束,应该跳转到解析这些值。虽然解析并不是什么大问题,但我无法相信MySQL没有任何预先构建的东西。 看起来按类别选择汽车也会涉及一些子串和其他东西。 没有外键是一个更大的问题。 我唯一能找到的就是'SET'类型,但它应该预先定义它在数据库开发过程中可以存储的值,也可以只有64个预定义值,而可能有100个类别。< / p>
答案 0 :(得分:0)
建立这种many-to-many关系的常规方法是引入第三个表(junction table),其中包含有关其他两个表中项之间关系的信息。
在您的示例中,您将有三个表:
这是非常基本的关系建模,您可能希望查看一本精彩的教程或书籍,以进一步了解这些概念。
就像你认识到存储分隔的密钥列表一样,这是一个坏主意,因为它打破了模型。