Дизайн фотоальбома - PullRequest
       3

Дизайн фотоальбома

3 голосов
/ 07 января 2011

Я вижу, что для фотоальбомов большинство людей используют 3 таблицы:

Альбомы Фотографии PhtoAlbums.

Однако, если я смотрю на сайт, подобный Facebook, эта схема не будет работать (если я правильно понимаю), потому чтоУ меня может быть фотография в альбоме моего профиля и в общих альбомах, но я могу дать одному и тому же изображению разные описания, разные теги и т. Д. Даже удостоверение личности с фотографией отличается.Поэтому я предполагаю, что каждый раз, когда пользователь создает копию фотографии, она обрабатывается как новая фотография, и поэтому нам нужны только две таблицы: Альбомы и Фотографии (с FK для альбома)

Другие варианты - это таблица фотографийтолько с 1 столбцом (photo_id) и поместите все детали фотографии в таблицу PhotoAlbum, чтобы я мог назначить каждому уникальное свойство для каждого альбома.

Допустим ли я в этом дизайне?

Ответы [ 3 ]

2 голосов
/ 07 января 2011

Photo <- <code>Photo_Album -> Album.Это взаимосвязь, поэтому поместите различную полезную нагрузку (описание, теги и т. Д.) В таблицу Photo_Album (а также саму фотографию), чтобы, когда фотография была в базе данных, каждый экземпляр фотографии в альбоме также был помеченописано.

Тогда вы сможете сообразить, как объединить / отобразить эти данные для пользователя.

Кроме того, не забывайте, что Facebook не является реляционной моделью.Это база данных в стиле "NoSQL" по причинам масштабирования, и она работает совсем по-другому.Вы можете найти "NOSQL" в Google для получения дополнительной информации об этом.

1 голос
/ 07 января 2011

В реляционной базе данных Photo / Photo_Album / Album является обычным способом хранения данных. Принцип заключается в том, что вы сохраняете фотографию (или отдельную сущность) только один раз, но используете другие другие механизмы для обеспечения требуемой функциональности конечного пользователя.

На самом деле вам не нужно создавать «копию» в базе данных фотографии, чтобы к ней применялись разные метаданные. Вы можете иметь метаданные (различные теги, описания и т. Д.) В таблице, связанной с таблицей Photo_Album, которая содержит эти метаданные, вместо того, чтобы хранить их в таблице фотографий. Таким образом, у вас будут разные метаданные для каждой комбинации фотографии и альбома.

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

Конечно, все сводится к вашему конечному состоянию и потенциальным будущим требованиям, но суть этого шаблона проектирования - рассматривать вашу базу данных как отдельную, экономичную и оптимизированную систему хранения данных. Затем вы используете SQL / TSQL и многие другие «промежуточные» механизмы для предоставления интерфейса вашему графическому интерфейсу.

0 голосов
/ 02 августа 2014

в реляционной базе данных Photo / Photo_Album / Album является обычным способом хранения данных. Принцип заключается в том, что вы сохраняете фотографию (или отдельную сущность) только один раз, но используете другие механизмы для обеспечения требуемой функциональности конечного пользователя.

На самом деле вам не нужно создавать «копию» в базе данных фотографии, чтобы к ней применялись разные метаданные. Вы можете иметь метаданные (различные теги, описания и т. Д.) В таблице, связанной с таблицей Photo_Album, которая содержит эти метаданные, вместо того, чтобы хранить их в таблице фотографий. Таким образом, у вас будут разные метаданные для каждой комбинации фотографии и альбома.

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

Конечно, все сводится к вашему конечному состоянию и потенциальным будущим требованиям, но суть этого шаблона проектирования - рассматривать вашу базу данных как отдельную, экономичную и оптимизированную систему хранения данных. Затем вы используете SQL / TSQL и многие другие «промежуточные» механизмы для обеспечения интерфейса с вашим графическим интерфейсом. Вы можете создать лучший сервис для создания и создания фотоальбомов по номеру http://www.albumkart.com

...