2014-02-21 4 views
0

가 나는 Role에 속하고 하나 Server 또는 (역할에 따라 다름) 아무도이있는 Users 테이블을 가지고 있지만해야 user_id 필드와 Server 테이블을 가지고 아니면 내가 놓아야 테이블을 확장 사용자 테이블의 모든 서버 정보와 역할이 서버가 아니면 필드는 null이됩니까?(1-1 관계)

사용자가 하나의 서버를 가지고 있거나없는 경우 서버 테이블의 새 행이 아니어야합니다. 아마도 user_id 필드가 고유해야하고 올바른 것일 수 있습니다. 나는 혼란스러워.

그냥이 일을 구축하는 가장 좋은 방법 인 나에게 설명합니다.

- 편집

이것은 실제로 내 테이블

Roles

id (PK) | name 
1  | Administrator 

Users

id (PK) | role_id | name 
    1  | 1  | Juliano 

Servers

입니다
id (PK) | user_id (UNIQUE) | name 
    1  | 1    | Test 

나는 서버에서, USER_ID가 UNIQUE 또는 PK해야 .. 몰라? ONE 관계에

답변

0

하나는, 그리고 사용자 테이블에 서버를 넣어.

Users Table: 
ID(Pk) 
RoleID 
Name 
ServerID 
+0

정말? 서버가 없다면 ServerID는 null이됩니다. 맞습니까? 누가 서버를 소유하고 있는지 알고 싶습니까? 이 경우 서버는 둘 이상의 사용자에게 속할 수 있습니다. 그런 다음 논리가 올바르게 작동합니까? 서버 테이블이 필요하지 않은 경우 –

+0

은 서버에 서버 ID를 변경하고 테이블 서버를 제거합니다. 당신은 일대일 관계를 얻습니다. 예, 서버가없는 경우 서버 필드는 null이됩니다. 서버 정보 또는 사용자 정보를 사용하여 서버를 소유 한 사람을 알 수 있습니다. 2 명의 사용자가 소유 한 서버를 방지하려면 사용자에게 서버 소유권을 부여하기 전에 먼저 서버 소유권을 확인해야합니다. – cyan

+0

내 질문에있는 방법으로하지 쉬운가요? –