2011-02-14 3 views
0

전자 상거래 웹 사이트의 주문 시스템을 개선하려고합니다. 주문에 대한 헤더 테이블은 tbl_orders입니다. 정상적으로 작동하지만 그 아래에 또 다른 테이블이 있습니다 (말하자면) tbl_orderitems라고합니다.하나의 SQL 필드에 여러 문자열이 있습니다.

이 테이블에서 tbl_orderitems는 아이템 이미지를 참조하는 ID를 저장하지만 때로는 하나의 이미지가 항목과 연관되므로 하나의 필드에 둘 이상의 파일 이름을 저장하는 방법을 생각 중입니다.

그래서이 예에 대한 VARCHAR (400)이 될 수도의 필드가 파일 이름이라고 가정 해 봅시다 - 내가 그렇게 좋아 하나 이상의 파일 이름을 저장할 것입니다 ..

이미지/카드 /면/전체/145 .jpg, 이미지/카드/사이드/완료/146.jpg, 이미지/카드/사이드/완료/147.jpg

그래서 첫 번째 아이디어는 쉼표로 구분하여 저장하는 것이지만 내가 묻는 것은 이렇게하는 더 좋은 방법이 있습니까? 마찬가지로, 더 빠른 방법? ASP.NET C#을 사용하여이 데이터를 읽고 문자열을 반복해야합니다. 나는 최근에 JSON을 사용 해왔다. 사전

답변

3

에서

덕분에 파일 이름과 주문 항목 ID를 연결 두 개의 열이있는 별도의 테이블을 만듭니다.

주문 항목이 파일을 공유 할 수 있다면 이미지 ID와 파일 이름 (그리고 이미지와 연결할 다른 속성)을 저장하는 "이미지"테이블을 만드는 것이 좋습니다. 앞에서 언급 한 첫 번째 테이블의 파일 이름 열을 image-id로 바꿉니다.

+0

을 tbl_orderitemgroup.id합니다. 토론이 있었고 이것이 우리가이 문제를 푸는 가장 좋은 방법이라는 결론에 도달했습니다. 나는 우리에게 더 많은 유연성을 주었다. 우리는 쉽게 쿼리 할 수 ​​있고 크기, 크기 등으로 더 많은 데이터를 저장할 수있다. – tmutton

+0

이미지를위한 테이블이 두 개 이상 있으므로 ID를 저장할 수 없다. 우리는 명함, 달력, 사진 인쇄용 이미지 테이블을 가지고 있으므로 분명히 이드를 테이블에 참조 할 수 없습니다. 이것이 우리가 파일 이름을 저장하는 이유입니다. – tmutton

+0

"이미지를위한 하나 이상의 테이블"은 내 머리 속의 경고음을 울립니다. 이미지 정보를 여러 테이블로 분할해야합니까? 하나의 대안은 이미지 정보를 보유하는 하나의 테이블을 가지 고, 다른 카테고리 (및 카테고리 - 특정 속성)에 대한 이미지 ID를 단순히 저장하는 테이블을 분리하는 것입니다. –

1

하나가 아닌 두 개의 테이블을 만들 수 있습니다. 다음과 같은

: 외래 키 tbl_orderitem.group_id와

create table tbl_orderitemsgroup (
id int identity(1,1) not null) 

create table tbl_orderitem (
id int identity(1,1) not null, 
group_id int not null 
) 

간단한 일이었다

관련 문제