2011-01-06 4 views
3

나는 대부분의 사람들이 3 표를 사용하십시오.사진 앨범 테이블 디자인

그러나 내가 내 프로필 앨범과 일반 앨범에 사진이있을 수 있기 때문에이 스키마는 작동하지 않을 것입니다 (올바른 경우). 그러나 동일한 그림에 다른 설명, 다른 태그, 심지어 사진 ID가 다릅니다. 그래서 내 추측은 사용자가 새로운 사진으로 취급되는 사진의 복사본을 만들 때마다 다음과 같이 두 테이블 만 필요합니다. 앨범 및 사진 (앨범에 FK 포함)

기타 옵션에는 사진 테이블이 있습니다. 단 하나의 열 (photo_id)을 선택하고 PhotoAlbum 테이블에 모든 사진 세부 정보를 입력하면 앨범마다 고유 한 속성을 각각 지정할 수 있습니다.

이 디자인에 유효합니까?

답변

2

Photo < - Photo_Album ->Album. 관계이기 때문에 다양한 페이로드 (설명, 태그 등)를 Photo_Album 테이블 (사진 자체)에 넣으십시오. 그러면 사진이 데이터베이스에있는 동안 앨범의 각 사진에도 태그가 지정되거나 설명됩니다.

그런 다음이 데이터를 병합/표시하는 방법에 대해 영리하게 생각할 수 있습니다.

또한 Facebook은 관계형 모델이 아닙니다. 스케일링을위한 "NoSQL"스타일 데이터베이스이며, 매우 다른 방식으로 작동합니다. 그 생각의 기차에 대한 자세한 내용은 Google에서 "NOSQL"을 검색 할 수 있습니다.

+0

사진이 Photo_album 테이블에도있는 경우 왜 사진 테이블. 그것에 무엇이 있을까요? – Manni

+0

Eh? 아니요. 실제 사진은 photo_album 테이블에없고, 앨범과의 많은 관계와 그 관계를 설명하는 일부 페이로드입니다. –

1

관계형 데이터베이스에서 Photo/Photo_Album/Album은 데이터를 저장하는 일반적인 방법입니다. 원칙은 사진 (또는 단일 개체)을 한 번만 저장하고 다른 다른 메커니즘을 사용하여 필요한 최종 사용자 기능을 제공한다는 것입니다.

다른 메타 데이터가 적용되도록 실제로 사진 데이터베이스에 "사본"을 만들 필요는 없습니다. 사진 테이블에 보관하는 대신이 메타 데이터가 포함 된 Photo_Album 테이블과 관련된 테이블에서 메타 데이터 (다른 태그, 설명 등)를 가질 수 있습니다. 이렇게하면 사진과 앨범의 조합마다 메타 데이터가 달라집니다. 이 메타 데이터를 가질 수 방법과 관련이 세 가지 (물론 기술적 4 개) 테이블을 사용하여

에 대한 단지 사진 또는 단지 앨범 또는 둘의 조합.

미래의 요구 사항은 모두 최종 상태 인 &이지만,이 디자인 패턴의 핵심은 데이터베이스를 별도의 경제적 인 최적의 데이터 저장 시스템 &으로 취급하는 것입니다. 그런 다음 SQL/TSQL 및 기타 많은 "중간"메커니즘을 사용하여 GUI에 인터페이스를 제공합니다.

+0

원본 사진이 변경되지 않은 경우에만 이것이라고 가정합니다. 원본 사진을 자르거나 180도 회전 시키거나 적목 현상을 감추면 새로운 사진 ID가있는 새로운 사진입니까? – Manni

+0

그리고 '앞'테이블은 무엇입니까? 태그/코멘트 용? – Manni

+1

미안하지만 좀 더 명확해야했습니다. 필자가 언급 한 네 번째 테이블은 Photo_Album에 대한 메타 데이터를 보유하기 위해 Photo_Album 테이블 (일대일 관계가있는)과 관련된 테이블입니다. 이 메타 데이터를 Photo_Album 테이블 자체에 저장할 수는 있지만 메타 데이터가없는 Photo_Album을 설명하기 위해 NULLable 필드를 사용해야합니다. 이 테이블을 4 번째 1 대 1 관련 테이블로 분할하여 NULL 열을 제거하는 것이 더 나은 설계 방법으로 간주됩니다 –

0

n 관계형 데이터베이스 Photo/Photo_Album/앨범은 데이터를 저장하는 일반적인 방법입니다. 원칙은 사진 (또는 단일 개체)을 한 번만 저장하고 다른 다른 메커니즘을 사용하여 필요한 최종 사용자 기능을 제공한다는 것입니다.

다른 메타 데이터가 적용되도록 실제로 사진 데이터베이스에 "사본"을 만들 필요는 없습니다. 사진 테이블에 보관하는 대신이 메타 데이터가 포함 된 Photo_Album 테이블과 관련된 테이블에서 메타 데이터 (다른 태그, 설명 등)를 가질 수 있습니다.이렇게하면 사진과 앨범의 조합마다 메타 데이터가 달라집니다.

이 세 가지 (기술적으로 네 가지) 테이블 관련 접근 방식을 사용하면 사진 또는 앨범 또는 두 가지 조합에 대한 메타 데이터를 가질 수 있습니다.

미래의 요구 사항은 모두 최종 상태 인 &이지만,이 디자인 패턴의 핵심은 데이터베이스를 별도의 경제적 인 최적의 데이터 저장 시스템 &으로 취급하는 것입니다. 그런 다음 SQL/TSQL 및 기타 여러 "중간"메커니즘을 사용하여 GUI에 인터페이스를 제공 할 수 있습니다. 최상의 사진 앨범을 만들고 서비스 할 수 있습니다. http://www.albumkart.com

관련 문제