나는 반대 의견을 가지고있는 질문이 있는데, 추가 의견을 감상 할 수 있습니다.MySQL : 사용자의 "보기"를위한 테이블 구조
내 사이트에는 각각 user_id가있는 사용자가 있습니다. 이러한 사용자는 제품을 볼 수 있으며 특정 제품을 보는 고유 한 사용자 인스턴스를 추적해야합니다. |
VIEW_ID (INT, PK) :
옵션 1 : 별도의 뷰 테이블 뷰를 기록하려면, 나는 현재 두 가지 옵션이있어 user_id (INT, FK) | product_id (INT, FK) | view_date
... ON DUPLICATE KEY로 쉽게 업데이트 할 수 있도록 두 개의 중간 열에 대해 고유 제한 조건을 만듭니다. 동일한보기가 이미 있으면 view_date 만 업데이트합니다. 그렇지 않으면 새로운 행을 씁니다.
옵션 2 :
user_product (VARCHAR20, PK) | view_date
... 중간에 구분 기호가있는 VARCHAR에 두 ID를 병합하고 위와 같은 방법으로 ON DUPLICATE KEY로 쉽게 업데이트 할 수 있도록 기본 키 열을 사용하십시오.
구조는 대략 다음을 수용해야합니다. 백만 가지 고유보기 어떤 옵션이 더 좋든 나 나 낫지 만, 그 이유는 무엇입니까? 사전에 큰 감사드립니다.
편집 : 답변 해 주셔서 감사합니다. 같은 편에 기대고 있었지만 안심이 필요했습니다.
옙 ... REPLACE가 자동 증가 INT ID (삭제 후 다시 쓰기)를 "소비"하므로 PK 열 데이터 유형이이를 수용해야합니다. – Tom