2014-10-03 2 views
0

이 시나리오의 경우 : 사용자 테이블이있는 경우 기본 가입 및 페이스 북 사용자가 등록됩니다. ID가 자동 증가하고 독특한 경우다른 출처의 사용자 표

Table users 
id | name 
1 John (default) 
2 Carl (default) 
111 Steven (facebook) 
... 
111 Wayne (default) 

의 DBMS 가입 기본에서 ID (111)를 삽입하려고 할 때 ID (111)는 수동으로 삽입했기 때문에, 나는, 고유 제한으로 인해 오류가 발생합니다. 따라서 DBMS는 id 111이 존재하는지 다음의 기본 sign up이 112가 아닌 111이어야한다는 것을 알아야합니다.

이 오류를 방지하는 방법이 있습니까? 비슷한 경우를 처리하는 가장 좋은 방법은 무엇입니까?

두 명의 사용자 표를 구성하면이 문제가 발생하지 않도록 조금 복잡해 보입니다.

답변

1

다음 두 가지 방법이 있습니다.

사용자가 두 가지 방법으로 가입 할 수있는 경우 먼저 각 사용자에 대해 별도의 열을 사용할 수 있습니다.

  • DefaultDateTime
  • FacebookDateTime

등, 당신이 원하는대로 컬럼 : 그래서, users 테이블과 같은 열이있을 것입니다. 사용자가 "두 번째"방법으로 등록하면 새 레코드를 삽입하는 대신 기존 레코드를 업데이트합니다.

두 번째 방법이 더 좋습니다. 두 개의 테이블이 있습니다

  • 사용자를
  • 가입 절차

Signups 테이블이 다시 (아마도 NOT NULL 제약 포함) Users 테이블에 외래 키 관계를 가질 것이다. 두 테이블 모두 자동 증가 정수 기본 키를 갖습니다.

데이터 모델에서 가입은 사용자와 별개이므로 분명히 모델링해야합니다. 그런 다음 주어진 사용자에 대해 원하는만큼 많은 가입을 할 수 있습니다.

0

Maby 데이터베이스에서 MAX ID 값을 가져 와서 다음 삽입을 위해 +1을 추가 할 수 있습니다. 그렇게하면 현재 값보다 항상 값을 얻을 수 있습니다.

관련 문제