虽然我一直在写php很长一段时间,但这总是我学到的技能,我刚刚对表连接产生了一个小小的信心危机!使用auto_increments加入MySQL中的MyISAM表
假设一个MySQL数据库auth
含MyISAM表users
和permissions
:
users
- id (auto increment)
- email
permissions
- id (auto increment)
- name
要在许多一对多(或一对多),我一直使用桥接表连接这些表像这样:
user_permissions
- id (auto increment)
- user_id
- permission_id
(我知道的InnoDB能的关系,但它也更复杂和猪更多的内存,所以对于q的目的,我想留在MyISAM数据)
我特别的问题是:使用自动递增键来连接表是否明智,还是应该生成我自己的附加键?
我知道,如果表损坏,我必须重建,或者如果我开始镜像到两个数据库并且键不同步,可能会发生问题。我也知道,如果我为每一行(要在连接中使用)生成一个唯一的散列,那么生成一个散列并在每次数据插入之前检查它是新的开销。
其他人如何做到这一点?这些问题是你在实际情况中看到的吗?
谢谢你的时间!
亚当
谢谢,我知道怎么做的SQL - 的问题更多的是在加入了安全使用auto_increments的。 – 2010-01-24 21:15:18
我想我不明白这个问题。你是什么意思“安全”?自动递增与加入有什么关系? – 2010-01-24 22:20:59
根据这个问题,如果数据库应该损坏或镜像失败,如果关系建立在auto_incremented值上,我有可能失去关系吗? – 2010-01-24 23:38:11