테스트 사이트 - 개발 중인 베타 버전입니다

상품코드 길이 줄이기와 순차적으로 .... 채택완료

isum 5년 전 조회 4,537

상품코드 관련 질문을 찾아보니 생각외로 적으네요. 

 

기본 10자리 이고 ....

랜덤 생성 되는데 ....

 

이걸 한자리 숫자로 시작

게시판 처럼 1 부터 카운팅 되게 하려고 합니다.

 

첫번째 상품등록 상품코드는 1

두번째 상품등록 상품코드는 2 

.

.

.

식으로요. 

 

조언 좀 부탁 드립니다. 고맙습니다.

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 10개

채택된 답변
+20 포인트
dragon
5년 전

참고하세요

ALTER TABLE `g5_shop_item` CHANGE `it_id` `it_id` INT NOT NULL AUTO_INCREMENT;

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
isum
5년 전
SQL 질의:

ALTER TABLE `g5_shop_cart` CHANGE `it_id` `it_id` INT NOT NULL AUTO_INCREMENT

MySQL 메시지: 도움말

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

식으로 에러가 보여지네요. 조언 좀 부탁 드립니다.

phpmyadmin 버전이 다른것으로 수동으로 편집 > 수정에 들어가서 추가 항목에
종류 INT Null not null 추가 auto_increment 를 선택해도 같은 에러 메세지가 보여진답니다.

댓글을 작성하려면 로그인이 필요합니다.

i
5년 전

재차 확인해 보니 10자리의 숫자가 1씩 증가는 하네요. 

 

숫자를 줄이고 1씩 증가하는 함수를 못 찾겠네요.

 

<?php echo time(); ?> 식으로 하면 10자리 불러오고 1씩 증가는 합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

i
5년 전

g5_shop_cart 테이블이 통째로 사라져서 난감 하네요. 

받아서 올려도 안되고 .... 백업 후 재설치 해야 하는건지 ....^^

 

다행히도 다른 계정에 있던걸 백업 후 다시 업로드 했더니

원상복구 되었습니다. 고맙습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

i
5년 전

it_id 입력창에 자동으로 카운터 된 숫자가 1씩 증가하게 해 놨습니다.

복사항목도 마찬 가지구요. 

 

분류명(자동으로)+상품코드가 상품페이지에 보여지구요. 검색+주문서만 손보면 될듯 하네요. 

 

두분 고맙습니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

i
5년 전

it_id 가 참조로 되는 영역들에서는 varchar를 int로 변경하는 작업들을 다 하셔야 합니다.

플래토님 ... DB만 새로 덮어 쒸우고 ....

아무것도 입력 안된상태 에서 위 작업을 마치면 적용 가능 하다는 

말씀 이신거죠?

 

AUTO_INCREMENT 는 g5_shop_item it_id 에서 한번만 해주면 되는거죠?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

플래토
5년 전
@isum
영카트 빈 형태로 만든상황에서 it_id를 순차로 만드신다는 목적을 처리하기 위해서
적용하는 것에 한해서 말씀드린것입니다.

int 형태로 바꾸는게 먼저이고
키에 해당되는 필드인 it_id 에 순차증가값인 it_id로 변경하시는게 맞고
입력처리하는 로직들에서 it_id를 기록/갱신하는 로직을 제거하셔야합니다.
물론 g5_shop_item 에 해당되는것이구요

그외의 it_id를 참조로 사용하는 테이블들에서 varchar로 사용해도 상관은 없겠지만
안정성을 위해서 int로 변경하는게 좋지만.. 다른 로직들이 수정되는게 불편하시면
varchar로 사용하셔도 됩니다.

댓글을 작성하려면 로그인이 필요합니다.

dragon
5년 전

 

저 같으면 여분 필드를 활용해서 이용할 것 같습니다.

물론 주문서에는 그 상품에 관한 여분필드 정보를 갖고 오게끔 하면 될 것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
isum
5년 전
어느 사용자분이 올려주신 판매자 이메일 필드를 이용하는 방법과
여분필드는 다른 용도로 사용을 했었구요.

it_id 상품코드가 붙으면서 자동으로 분류명(ca_id)이 붙어 두번 입력하는
번거로움과 등록 상품의 순서 .... 숫자를 기억해야 하는것을 없애고자
한것 입니다. 플래토님과 dragon님의 답변을 참고로 다각도로 생각을
해봐야 겠습니다. 두분 고맙습니다.

댓글을 작성하려면 로그인이 필요합니다.

dragon
5년 전

제가 보기에는카트 테이블에서  ct_id는 인덱스를 잡아 주는 것이고

od_id 가 직접적인 주문 번호 인것 같습니다.

질문에 상품코드을 물어보셨고 수정된 코드는 카트테이블 it_id에 잘 들어 갑니다.

궁금한 것은 왜 카트 테이블에서 상품코드를 변형 하실려고 하는지 궁금합니다.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
isum
5년 전
그냥 사용해도 무방 한데요 .....

카테고리 id (ca_id) 를
분류명 아무개(ca_id 는 nt)

nt상품코드 > nt123456 식으로 보여지게 하려고 합니다.
(순차적 으로 한다면 nt1 식이 되겠지요?) ca_id + it_id 식이
되겠네요. it_id 앞에 ca_id를 붙이려고 하는데 생각보다 쉽지가
않더라구요.

부품을 진열해 놓고 주문이 오면 nt5 일 경우 nt 라는 칸에 5번 물건을
내어주면 된다 식으로 운영을 해보려고 해서 그렇습니다.

* 질문에 상품코드을 물어보셨고 수정된 코드는 카트테이블 it_id에 잘 들어 갑니다.

라고 하셨는데요 .... AUTO_INCREMENT 이 친구만 들어가면 에러가 보여지네요.

댓글을 작성하려면 로그인이 필요합니다.

dragon
5년 전

 

ct_id 에서 키하고 auto 선점 했네요....

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
isum
5년 전
ct_id 가 주문 관련쪽 인거 같으네요.

방법이 없을까요? 순차적으로 힘들다면
여섯자 정도로 숫자만 줄이는건 어렵지 않겠죠?

댓글을 작성하려면 로그인이 필요합니다.

dragon
5년 전

ALTER TABLE `g5_shop_cart` CHANGE `it_id` `it_id` INT NOT NULL AUTO_INCREMENT -> 카트 테이블에서 변경 하시는 건가요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
isum
5년 전
네. 맞습니다. 카트 테이블에 it_id 항목이 있습니다.

댓글을 작성하려면 로그인이 필요합니다.

플래토
5년 전

it_id의 타입을 varchar에서 int로 바꾸고
컬럼의 속성을  auto_increment 로 변경해보세요

자동증가 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

i
isum
5년 전
it_id 실행(변경)



후 ....



이름 종류 길이/값 기본값 데이터정렬방식 보기 Null A I 설명 컬럼이동



순으로 보여집니다. 플래토님 말씀처럼 타입은 종류 에서 쉽게 변경이 가능 하구요.

컬럼의 속성을 auto_increment 로 변경해 보려고 하는데요 .... 

어느 항목에서 해 주어야 하는지요? 조언 좀 부탁 드립니다.



종류의 INT 값만 변경 시도를 하면 질의오류 #1067 - Invalid default value for 'it_id' 라고

에러 팝업을 보여 주네요.
플래토
5년 전
@isum
it_id 는 g5_shop_item 테이블의 컬럼에만 auto_increment를 해야하는것이구요

it_id 가 참조로 되는 영역들에서는 varchar를 int로 변경하는 작업들을 다 하셔야 합니다.

​​​​​​​이런것을 진행할때 데이타가 이미 들어가 있으면 오류가 발생할수있으니 참고하세요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인