내 사이트는 등록 된 사용자와 등록되지 않은 사용자 간의 통신을 가능하게합니다. 데이터베이스에 등록되지 않은 사용자를 저장하는 가장 좋은 방법을 결정하려고합니다. 응용 프로그램의 작동 방식을데이터베이스에 외부/인증되지 않은 사용자를 저장하는 적절한 방법은 무엇입니까?
Users
------------
user_id
device_id *Unique* (this is for mobile app users)
email *Unique*
phone *Unique*
first_name
last_name
image_url
date_joined
UserNames (Users have custom names for each group potentially)
-------------
name_id
user_id
group_id
first_name
last_name
더 자세한 사항 :
- 사용자가 등록하고 모두
- 메시지는 다음입니다 등록 및 비 등록 사용자를 포함하는 그룹/목록을 만들 다음과 같이 내 초기 스키마이었다 그룹/목록의 구성원에게 전송
- 참고 : 등록 된 사용자는 명시 적 승인없이 목록에 등록되지 않은 사용자를 추가 할 수 있습니다.
전자 메일, 전화 번호 및 장치 ID가 고유하기 때문에 위에 나열된 디자인을 선택했습니다. 그러나 사용자는 각 사용자마다 다른 이름/별명을 가질 수 있으므로 UserNames 테이블이 있습니다. 그러나 등록되지 않은 사용자를 저장하는 것이 사이트의 기술적으로 등록 된 사용자가 아닌 경우 사용자 테이블에 저장해야하는지 여부는 분명하지 않습니다.
등록되지 않은 외부 사용자를 별도의 테이블에 저장해야합니까? 내가 무엇인가를 명확히하기 위해 나를 필요로한다면 알려줘.
"비 사용자"를 "사용자"테이블에 저장하는 데 문제가 있습니까? 그것은 내가 추측하는 의미 론적 토론에 가깝다. 비 사용자를 "사용자"로 저장하는 것에 대해 잘못된 점이 있습니다. –
tinyint 필드 사용시 +1. "등록되지 않은"사용자가 앱 디자인의 일부인 것처럼 들리지만 (예 : 메시지를 보내려는 경우), 이는 레코드를 유지하려는 것입니다. 그렇다면 질문은 다른 표 또는 아닙니다. 특성이 등록 된 사용자와 매우 유사하면 동일한 테이블에 보관하십시오. – Chad
내게는 응용 프로그램과 예상되는 테이블 크기에 따라 다릅니다. 당신이 정말로 non-registeres 사용자들에 대한 어떤 데이트도 지속하지 않는다면 아마 데이터베이스에 이들을 가지고 있지 않을 것입니다. (그리고 아마 익명의 사용자로 코드를 처리 할 것입니다.)하지만 만약 당신이 등록 된 사용자가 등록되지 않은 사용자를 등록되지 않은 사용자의 정보를 유지해야하는 곳에 초대하면 데이터베이스에 등록되지 않은 사용자는 없습니다. –