2011-05-02 5 views
0

웹 사이트에 게시 될 항목에 대한 데이터가 포함 된 phpmyadmin 테이블이 있습니다. 이 행을 데이터베이스에 수동으로 추가하고 있습니다. 게시 된 항목의 번호를 표시하고 싶습니다. 첫 번째 것은 '1'이고, 두 번째 것은 '2'등입니다. 그러나 자동 증가를 사용하고 두 번째 행을 삭제하면 중간에 간격이 생깁니다. 이 문제를 해결하기위한 제안?ID가 phpmyadmin에 있음

필자는 PHP를 사용하여 행 ID를 표시했지만 두 번째 테이블을 삭제하면 간격이 표시됩니다.

구조는 기본 키와 자동 증가가있는 'id'라는 열로 시작됩니다.

+4

달성하고자하는 것은 기본 키의 목적에 위배됩니다. – naiquevin

+0

이것은 불가능합니다. @naiquevin이 이미 말했듯이, 근본적으로 기본 키의 목적에 어긋납니다. 포인트 또는 기본 키는 레코드 당 고유 ID를 갖는 것입니다. 동일한 ID를 가진 두 개의 레코드가 없어야합니다. 외부 참조 및 종속성을 망칠 것입니다. –

+0

중복 가능성 [MYSQL의 자동 증가를 재설정하면 아무 것도 엉망이되지는 않겠습니까?] (http://stackoverflow.com/questions/2085835/if-i-reset-the-auto) -increment-in-mysql-it-wont-mess-up-anything-right) –

답변

3

당신은 그렇게하고 싶지 않습니다! 기간. 당신은 스스로 많은 문제를 만들 것입니다. 귀하의 실제 문제는 다른 곳에서 발생합니다. 당신은 귀하의 ID 사이에 간격이 그것을 해결할 것이라고 생각하지 않습니다. 이 문제를 다르게 해결하지만 자동 증가 ID 열만 남겨 둡니다. 그것은 그 이유와 같이 구현되고 있습니다. autoincrement는 두 개의 항목을 혼동하지 않도록합니다. 간격이 있는지 여부는 중요하지 않습니다. 항상 정렬 할 수 있습니다. 항상 식별 할 수 있습니다! 멋진 직선 숫자가 필요하면 숫자 배열에 항목을 저장하고 번호 매기기에 키를 사용하십시오. 또는 for 루프를 사용하여 항목을 반복하고 번호 매기기에 증분자를 사용하거나 데이터베이스에 주문 열을 삽입하십시오.

3

이 문제를 해결하기위한 제안?

깨지지 않았습니다!

내부 용 및 데이터 무결성을 위해 개발자로서 데이터베이스 ID를 고려하거나 고려하지 않아야합니다.

당신이 정말로 틈없이 숫자를 증가 사용할 경우

는 쿼리에서 이것을 사용

X 당신의 URL에서 "ID"(안 실제 ID를)입니다
LIMIT 1 OFFSET X 

.

그러나 여기에 대해 조언을 구하는 사람들의 이야기를 들어보십시오. 그것은별로 좋은 생각이 아니며 나를 믿으십시오. 아무도 앞으로 데이터베이스 아이디를 돌보지 않거나 눈치 채지 못할 것입니다.