2009-08-08 3 views
3

Я пытаюсь организовать свои фотографии и создать какой-то передний конец ajax. У меня много фотографий и существующий хостинг-сайт, на который уплачено, у него много дискового пространства, поэтому я не хочу платить за хранение на веб-сайте picasa или альтернативе.предлагаемая схема базы данных для фотографий сайта

Я создаю сайт asp.net для просмотра этих фотографий, но я пытаюсь определить лучшую схему для хранения. А имеет несколько фундаментальных вопросов:

Фото
Альбомы
Теги (возможно)

несколько вопросов: 1. Есть ли у меня отдельная таблица для каждого альбома или всех фотографий в одной фотографии. отдельные таблицы были бы одинаковыми, поэтому я пытаюсь определить, есть ли какая-либо польза для этого разделения. 0. Есть ли какое-либо существенное преимущество использования SQL-сервера в сравнении с MYsql (это мой выбор в этом случае) для этой схемы. Я не думаю, что я делаю что-то необычное.

ответ

12

Вы должны поместить все фотографии в одну таблицу, где у Вас есть 1: N с внешним ключом к альбомам, как

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

где альбом является внешним ключом к Albums.id

О тегах, вы, вероятно, хотят иметь много тегов для одной фотографии, так что бы N: N, где вам нужен другой стол, чтобы присоединиться к этим двум, поэтому у вас есть

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

где id_tag и id_photo внешние ключи к Tag.id соответствующим Photo.id

Если вы делаете проект только для личного использования, я думаю, что MySQL будет делать только штраф.

+0

Любые идеи для галереи thumb? Должно ли это быть в таблице «Фотографии» или в таблице «Альбомы»? – Paul

2

Один стол для альбомов (id, имя, описание), одна таблица для фотографий (id, name, description, PhotoData, parentAlbum), вы не получите никакой пользы и много сложностей, если разделитесь на разные таблицы за альбом. Если вы хотите, чтобы фотографии принадлежали нескольким альбомам, используйте таблицу ссылок для отношений 1: N Альбомы: Фотографии, а не идентификатор альбома как часть фотографии. Если вы идете по тегам, решите, хотите ли вы пометить фотографии или альбомы (или и то, и другое), то, возможно, зайдите в таблицу тегов и таблицу отображения 1: N для альбомов и фототегов

Что касается выбора БД, то только отличительный знак на этом уровне стоит так идти с тем, что вы знаете лучше всего (если у вас есть оба доступны по той же цене).