【发布时间】:2011-01-08 21:16:55
【问题描述】:
虽然我写 php 已经有很长时间了,但这始终是我自学的技能,我刚刚遇到了关于表连接的小信心危机!
假设 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)
我的特殊问题是:使用自动递增键加入表是否明智,还是应该生成自己的附加键?
我知道如果表损坏并且我必须重建,或者如果我开始镜像到两个数据库并且密钥不同步,则可能会出现问题。
我还知道,如果我为每一行生成一个唯一的哈希(用于连接),那么在每次插入数据之前生成一个哈希并检查它是否是新的都会产生开销。
其他人是如何做到的?这些问题是您在实际情况中看到的吗?
感谢您的宝贵时间!
亚当
【问题讨论】:
标签: mysql join auto-increment myisam