一直在阅读教程How to handle a Many-to-Many relationship with PHP and MySQL。mysql多对多关系
在这个问题上我指的是哪些规定如下规则“数据库架构”部分:
这个新表必须构建以 允许:
* It must have a column which links back to table 'A'. * It must have a column which links back to table 'B'. * It must allow no more than one row to exist for any combination of rows from table 'A' and table 'B'. * It must have a primary key.
现在到目前为止,它非常清晰。
我遇到的唯一问题是第三条规则(“它必须允许不超过一行以存在于任何组合”)。
我希望这样也可以应用,但它似乎并没有这样工作。
在我的MySQL测试实例(5.XX)中,我可以添加两行,它们反映了相同的关系!
举例来说,如果我有这样的关系(通过添加行):
A到B
它也使我能够使这种关系,以及:
B到A
所以,问题实际上是两个问题:
1)如何在第三条规则不允许做上述?无论组合如何,只有一个独特的关系。
2)当我会想搜索“A”的所有关系,如何将SQL查询样子?
注意#1:基本上我的最终目标是创建一个“友谊”系统,据我所知该解决方案是一个多对多的表。如果可能,建议否则。
注2:用户表是从关系不同的数据库(称之为友谊)表。所以我不能使用外键。
我已经发布了一个“澄清”的问题在这里:http://stackoverflow.com/questions/3597078 – Poni 2010-08-29 23:54:37