2012-04-17 8 views
1

나는 사용자가 그들 사이의 관계를 수립 할 수 있어야하고 내용에 대한 사용 권한을 가져야하는 소셜 네트워크의 개발에 관여하고 있습니다. 예를 들면 : 한 명의 사용자를 내 친구로 추가하지만이 사용자는 모든 사용자의 콘텐츠를 볼 수 없으므로 사용자가 허락하는 콘텐츠 (사용 권한)에만 액세스 할 수 있습니다. 그래서 문제가 생겨서이 부분의 DER을 설계하는 데 도움이 필요합니다. 모든 관계사용자 간의 인간 관계

  • 두 행 : 사용자 1> 내가 검색 할 때 (선택) 때문에 사용자 2 및 사용자 2> 사용자 1 I를이 다음을 유발

    - users (id, name) 
    - relations_type (id, name, active) 
    - users_relations (id, id_user_1, id_user_2) 
    - users_permissions (id, id_relation, id_module, id_user, view, edit, delete) 
    

    : 나는 생각이 테이블이 사용자 1 친구인지 User2 친구인지를 알아야합니다. 편도 관계만을 유지하면 UNION이 필요하고이 마이그레이션은 DB를 느리게합니다.

맞습니까? 이것에 대해 CRUD 할 때 네가 어떻게 처리 할까? MySQL과 MyISAM 테이블을 사용하고 있습니다.

답변

0

user1과 user2를 테이블 이름으로 사용하지 마십시오. 범위가 확장 될 때 어느 것이 어느 테이블인지 잊어 버릴 것입니다. 사용자 테이블에 대한 사용 권한을 비정규화할 수 있으므로 테이블을 몇 개의 부울 비트로 나눌 필요가 없습니다. 결코 노조에 포함되지 않으면 예상치 못한 상황에서 당신을 배반 할 것입니다.