필자는 오랫동안 PHP를 작성해 왔지만, 항상 자신을 배웠던 기술이었고 테이블 조인에 대한 자신감의 사소한 위기에 처했습니다! MySQL의 가정 auto_increments를 사용하여 MySQL의 MyISAM 테이블에 참여하기
auth
데시벨 포함 MyISAM 테이블
users
및
permissions
:
users
- id (auto increment)
- email
permissions
- id (auto increment)
- name
은 다 대다 (또는 일대 다), 난 항상 사용했습니다 브리지 테이블에 이러한 테이블을 조인하려면 그래서 같은 :
user_permissions
- id (auto increment)
- user_id
- permission_id
(나는 이노 관계 할 알고 있지만, 그것은 또한 더 복잡하고 돼지 더 많은 메모리, 나는 MYISAM와 함께 머물하고 싶은 질문의 목적 때문에)
내 질문은 이것입니다 : 자동 증분 키를 사용하여 테이블을 조인하는 것이 현명한가 아니면 자체적으로 추가 키를 생성해야합니까?
테이블이 손상되어 다시 작성해야하거나 두 개의 DB로 미러링을 시작하고 키가 동기화되지 않으면 문제가 발생할 수 있음을 알고 있습니다.
각 행 (조인에 사용됨)에 대해 고유 한 해시를 생성하면 해시 생성 및 모든 데이터 삽입 전에 새로운 것인지 확인하는 오버 헤드가 있다는 것도 알고 있습니다.
다른 사람들은 어떻게합니까? 이러한 문제는 실제 상황에서 본 것입니까?
시간 내 주셔서 감사합니다.
덕분에, 나는 SQL을 수행하는 방법을 알고 - 문제는 조인에서 auto_increments의 안전한 사용에 대한 자세한입니다. –
나는이 문제를 이해하지 못한다고 생각한다. "안전한"이란 무엇입니까? 자동 증가는 가입과 어떤 관련이 있습니까? –
질문에 따라 데이터베이스가 손상되거나 미러링이 실패 할 경우 관계가 auto_incremented 값으로 구축되면 관계가 손실 될 위험이 있습니까? –