2009-08-08 2 views
3

내 사진을 정리하고 일부 아약스 프런트 엔드를 만들려고합니다. 나는 많은 사진과 기존의 호스팅 사이트에 많은 돈을 지불하고 있기 때문에 picasa 웹이나 다른 상점에 돈을 지불하고 싶지는 않다.사진 웹 사이트에 대한 데이터베이스 스키마 제안

나는이 사진들을보기 위해 asp.net 사이트를 만들고 있지만 그때 저장할 최고의 스키마를 결정하려고 노력 중이다.

사진
앨범
태그 (아마도)

몇 가지 질문 : 1. 내가 각 앨범이나 하나 개의 사진에있는 모든 사진을 별도의 테이블이 할 A는 몇 가지 기본적인 질문이 있습니다. 분리 테이블은 동일하므로이 분리에 대한 이점이 있는지 확인하려고합니다. 2.이 스키마에 대해 SQL 서버 대 MYSql (이 경우에는 내 선택 사항)을 사용하는 것이 큰 이점입니다. Idon't는 내가 멋지게하는 무엇인가하고있다라고 생각한다.

답변

12

당신은 당신이 일을 하나 개의 테이블로 모든 사진을 넣어해야합니다 아마 앨범 태그에 대해 Albums.id

에 외래 키가

Photos | id, title, url, description, album 
Albums | id, title, description 

처럼 N 앨범 외래 키와 당신을 즉 N 될 수 있도록, 하나 개의 사진을 여러 태그를 갖고 싶어 : N, 당신은 그 두 가지를 결합하는 다른 테이블이 필요합니다, 그래서 당신은

Tags | id, name 
Photo_Tag | id, id_tag, id_photo 

id_tagid_photo은 각각 Tag.id에 대한 외래 키입니다. Photo.id

프로젝트를 개인적인 용도로만 만들면 MySQL이 정상적으로 작동한다고 생각합니다.

+0

갤러리 엄지 손가락에 대한 아이디어가 있습니까? 사진 테이블이나 앨범 테이블의 필드 여야합니까? – Paul

2

사진 (ID, 이름, 설명, PhotoData, parentAlbum)에 대한 하나의 테이블 (ID, 이름, 설명) 하나의 테이블, 당신은 다른 테이블로 분해하면 아무런 이점과 많은 복잡성을 얻지 못할 것입니다. 앨범 당. 사진을 여러 앨범에 속하게하려면 앨범 ID를 사진의 일부로 사용하지 말고 1 : N 관계 앨범 : 사진에 대한 링크 표를 사용하십시오. 태그를 사용하는 경우 사진 또는 앨범 (또는 둘 다)에 태그를 추가할지 결정한 다음 태그 테이블과 사진 태그에 대한 태그 테이블 및 1 : N 매핑 테이블을 지정하십시오.

DB 선택과 관련하여 유일한 차별화 요소 이 수준에서는 비용이므로 가장 잘 압니까 (동일한 가격으로 사용할 수있는 경우).

관련 문제