찾다

 >  Q&A  >  본문

MySQL의 행 값을 기반으로 고유 ID 생성

계보 프로젝트를 위한 웹 애플리케이션을 만들고 있습니다. 데이터베이스에 추가된 각 사람이 성의 처음 3자를 기반으로 하는 고유 ID를 갖고(설명을 위해 "성 문자열"이라고 부르겠습니다) 자동 증가(00001부터 각 사람을 나타냄)를 갖기를 원합니다. 고유한 "성 문자열").

예 - 사람의 성은 "Smith"입니다. 성 문자열은 SMI가 되며 첫 번째 성 문자열 "SMI"이므로 전체 참조는 SMI00001이 됩니다. 상대방의 성이 Black이므로 성 문자열은 BLA이고, 성 문자열 BLA를 가진 첫 번째 사람이므로 참조는 BLA00001이 됩니다. 세 번째 사람의 성 역시 Smith입니다. 이 사람은 SMI 성 문자열을 가진 두 번째 사람이므로 참조 번호는 SMI00002여야 합니다.

이 고유 ID는 데이터베이스에서 사람을 검색하고 사람 간의 관계를 생성하기 위해 사람 URL에 사용됩니다.

이 문제를 논리적으로 해결하는 방법을 모르겠습니다.

아직 아무것도 시도하지 않았습니다. 이건 상상 이상이에요!

P粉541796322P粉541796322334일 전344

모든 응답(1)나는 대답할 것이다

  • P粉225961749

    P粉2259617492023-12-28 00:08:17

    이 방법은 조잡합니다. 일반적으로 데이터베이스 자동 증가(숫자)를 사용하거나 md5(time().'randomsalt'.$username)과 같은 고유 ID를 자동 생성해야 합니다.

    그러나 XXX00000 형식을 사용해야 하는 경우 다음 기능이 필요합니다.

    • 데이터베이스에 BLA00001이 있는지 확인하세요
    • 그렇다면 BLA00002 등을 확인해주세요.
    • 아니면 새 항목을 만드세요

    시간이 지나면 속도가 매우 느려지며 각 이름은 최대 99999번 존재할 수 있습니다. 그 후에는 BLA를 BL1, BL2 등으로 변경해야 합니다.

    회신하다
    0
  • 취소회신하다