2014-12-16 1 views
0

제품이있는 html select 태그 (드롭 다운)가 있습니다. 각 제품은 데이터베이스의 제품이라는 테이블에 해당 ID가 있습니다.외래 키가 아닌 SQL 테이블에 ID 저장

또한 "모든 제품"이라는 선택 항목에 옵션이 포함되어 있으므로 검색 할 때 표시 할 제품을 모두 선택할 수 있습니다. "모든 제품"옵션 값을 0으로 설정하고 데이터베이스에 0으로 저장합니다.

이러한 검색 통계는 ProductsSearched라는 테이블에 저장됩니다. 문제는 ID 0으로이 옵션을 저장해도 괜찮습니까? 이는 제품 테이블의 ProductID와 일치하지 않기 때문입니다. 이 테이블의 FK를 ProductsSearched에 사용할 수 없습니다.

다른면에서 Products 테이블에 "Any Product"옵션을 추가하고 ID를 할당하면 특정 제품 ("모든 제품")을 참조하는 다른 테이블에서 오용 될 수 있으므로 ID가 지정되지 않습니다. 제품이 아닙니다).

이 시나리오에서이 데이터를 저장하는 표준 또는 최선의 방법이 있습니까?

감사합니다.

+0

아마도 "do not care"필드를 테이블에 추가하여 아무것도없는 레코드임을 나타낼 수 있습니다. –

+0

nullable 외래 키는 어떻게됩니까? (@Product가 null이거나 ProductID = @Product 인) –

+0

감사합니다.이 태그도 사용할 수 있습니다. – delavega

답변

0

표 ProductSearches가 로깅 용으로 사용되는 경우 다른 테이블에 대해 fk를 사용하지 않아도됩니다. 나는 검색의 가치를 그냥 쓰는 것이 낫다고 생각한다. Product 테이블의 값이 어떻게 든 변경되면 나중에이 문제가 발생하지 않습니다.