Вопрос о дизайне - хранение изображений в виде объектов - PullRequest
1 голос
/ 07 января 2009

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

Полезно ли обрабатывать изображения как объект, поскольку столбцы «Имя изображения» и «Байты изображения» повторяются много раз? Или более разумно просто включить эти два столбца в таблицы для каждого объекта.

Полагаю, я отвечаю на свой вопрос при наборе текста ... Я создаю дополнительное объединение и дополнительный столбец (в каждой таблице будет три с именами, идентификатором и ImageId "

однако, есть несколько таблиц с несколькими изображениями на объект ... так что я думаю, это было бы лучше ???? Мнения?

Ответы [ 3 ]

4 голосов
/ 07 января 2009

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

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

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

0 голосов
/ 07 января 2009

Интуитивно понятно, что было бы легче рассматривать изображения и объекты как отдельные понятия. Это просто кажется более гибким.

Если вам нужно прикрепить к конкретным объектам вещи, отличные от изображений, это становится так же просто, как связать запись таблицы объектов с записью таблицы «другие вещи», хотя вам, вероятно, придется поменять местами, куда указывает внешний ключ. Это также даст вам возможность использовать эти изображения в других пользовательских объектах или позволить пользователям заимствовать изображения других пользователей.

Недостатком этого подхода является то, что вы заплатили бы немного штрафа за производительность за необходимость объединить одну или несколько таблиц вместе. Возможно, это не самая большая сделка, если ваш анализатор запросов к базам данных достаточно умен.

0 голосов
/ 07 января 2009

Вопрос, который нужно задать: «У меня есть несколько объектов с одним и тем же изображением». Если это так, то вы можете подумать об избыточности. Кроме того, хорошо ли справляется используемая база данных? Или лучше сохранить путь к файлу изображения и хранить изображения отдельно>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...