친구 관계 테이블에는 2개의 항목을 저장할 수 있습니다. 결국 하나의 항목을 저장하는 것은 직관적이지 않아 user_id가 2인 친구를 쿼리할 수 있습니다select friend_id from table where user_id = 2. 1개 저장하는게 더 귀찮네요, select friend_id from table where user_id = 2 union select user_id from table where friend_id=2. 권한 테이블을 분리해 보겠습니다. 관계 테이블은 관계를 유지하고, 권한 테이블은 권한을 유지합니다. 나중에 다른 권한을 추가해야 할 수도 있고, 한 테이블에 넣으면 분명 문제가 생길 수 있으니 같이 하지 마세요. 적어도 우리가 헤어진다면 그렇게까지 번거롭진 않을 텐데. 수정은 관계 테이블에 영향을 미치지 않습니다
친구 관계 테이블에는 2개의 항목을 저장할 수 있습니다. 결국 하나의 항목을 저장하는 것은 직관적이지 않아 user_id가 2인 친구를 쿼리할 수 있습니다
select friend_id from table where user_id = 2
. 1개 저장하는게 더 귀찮네요,select friend_id from table where user_id = 2 union select user_id from table where friend_id=2
. 권한 테이블을 분리해 보겠습니다. 관계 테이블은 관계를 유지하고, 권한 테이블은 권한을 유지합니다. 나중에 다른 권한을 추가해야 할 수도 있고, 한 테이블에 넣으면 분명 문제가 생길 수 있으니 같이 하지 마세요. 적어도 우리가 헤어진다면 그렇게까지 번거롭진 않을 텐데. 수정은 관계 테이블에 영향을 미치지 않습니다비즈니스 요구에 따라 더 자세히 설명하는 것이 개인적으로 더 좋다고 생각합니다
이 두 데이터는 귀하가 언급한 후속 요구 사항이 서로 다르다고 생각합니다. ID 1을 가진 사용자는 ID 2를 가진 친구가 한 명 이상 있어야 합니다.
또한 다른 요구 사항은 나중에 실현되지 않습니다. 같이 쓰면 좋아요
제 생각에는 분리가 필요하다고 생각합니다
두 가지 항목입니다.
1. 상대방은 당신의 친구이지만, 당신은 상대방의 친구가 아닐 수도 있습니다.
2. 상대방의 설정이 상대방의 설정과 다를 수 있습니다.
이 두 가지가 필요하다면. 둘, 그 반대인 하나가 필요합니다.
제 경험으로는 2가 더 나은 것 같아요. 첫째, 당신은 내 친구이지만 나는 당신의 친구가 아닐 수도 있습니다. 둘째, 이렇게 친구를 확인하면 너무 편리하지만, 링크 하나만 확인하는 것은 번거롭습니다.
추가로 확장을 고려해보겠습니다. 친구를 블랙리스트로 변경한 후 2개의 항목을 사용하면 쉽게 확장할 수 있습니다. 결국 내가 당신을 차단하면 당신은 나를 차단하지 못할 수도 있습니다.
둘째, 팔로우와 비슷합니다. 팔로우하면 팔로우하지 않을 수도 있습니다.