현재 제품 이미지, 사용자 프로필 사진, 로고 등 다양한 유형의 이미지가있는 제품에서 작업하고 있습니다. 쿼리 성능이 좋은 데이터베이스가 필요합니다.MySQL 데이터베이스 디자인 - 이미지 저장 - 단일 테이블 또는 다중 테이블
두 DB 디자인을 염두에두고 있습니다.
옵션 1 - I가 단일 ImageModel 파일을 사용할 수 있습니다
- ID, 제목, url_full, url_thumb, 상태 및 타임 스탬프 필드가 하나의 테이블
장점에있는 모든 이미지를 저장 삭제/업데이트 데이터를 삽입하십시오. 따라서 이미지 저장을위한 다중 논리가 존재하지 않습니다. 이것은 하나의 로직 인 "단일 테이블에 저장"입니다. 이미지가 저장 될 때마다 그래서, 제품 이미지 및 더 적은 사용자 이미지의 많은이있는 경우
단점
- , 사용자 이미지 질의 인해 느려질 것 ImageModel의 방법을 호출 할 수 있습니다 엄청난 수의 제품에 이르기까지.
OPTION 2 - 아이디, 제목, url_full, url_thumb, 상태 및 타임 스탬프 필드와 다른 테이블에서 이미지의 다른 유형을 저장
장점
-
기록
- 수 증가 한 섹션에서 다른 쿼리 속도에 영향을주지 않습니다.
단점
- 각 이미지 유형에 대한 별도의 모델 파일/함수를 작성해야한다.
- 이미지를 저장해야 할 때마다 유형을 지정해야합니다.
제 질문은 더 나은 접근 방법입니다. 장점과 단점은 실제 관심사입니다. 또한 다른 장점/단점이 있다면 목록을주십시오. 또는 다른 god db 디자인이 있다면 제안하십시오.
많은 제품과 사용자가있는 실제 시나리오를 기준으로 답하십시오.
"좋은 쿼리 성능"- 쿼리를 표시하십시오; 그들 없이는 우리는 당신을 도울 수 없습니다. –
이미지의 일반적인 크기는 얼마입니까? 우리가 킬로바이트를 말한다면, 한 가지 대답이 더 낫습니다. 메가 바이트 다음에 다른 것이 좋습니다. –