Сохраните значок типа файла в DATABASE или в файле XML или - PullRequest
3 голосов
/ 20 марта 2011

Я использую c #, wpf и mvvm.

В моей таблице данных каждая строка имеет в последней ячейке ListBox с документами, относящимися к этой строке, которые я называю точкой.

Пользовательможете добавлять документы в каждый период.

Я хочу отобразить для каждого документа значок типа файла (16x16) и имя документа.

Значок типа файла вызывает у меня небольшую головную боль.

Я не уверен, стоит ли мне сохранять каждый значок типа файла документов, например .DOC, в базе данных, потому что в день, возможно, входит 10 периодов, каждый из которых имеет 2 прикрепленных файла .DOC, таким образом, я сохраняю 20 значков в базе данных, которые избыточны в 19 раз ...

Большинство вещей, которые будет прикреплять мой пользователь, это типы файлов Office, такие как .xls, .doc, .pdf, изображения, zip / rar, вот и все.

Еще один, но технически более продвинутый способ - этосохранить значок уникального типа файла в виде закодированной строки base-64 в файле XML с расширением типа файла в виде пары ключ / значение.

XML загружается один раз в словарь один раз при запуске приложения

<FileTypes>
<Extension ext="doc" base64string="ff5598sdfusd98fjs9df98sd9f" />
<Extension ext="docx" base64string="ff5498sdfusd98fjs9df98sd9f" />
<Extension ext="xls" base64string="ff9548sdfdsfdfusd98fjs9df98sd9f" />
<Extension ext="xlsx" base64string="ff98sfdfddfusd98fjs9df98sd9f" />
<Extension ext="pdf" base64string="ff98fdfdsdfusd98fjs9df98sd9f" />
<Extension ext="zip" base64string="ff98dfdfsdfusd98fjs9df98sd9f" />
<Extension ext="rar" base64string="fffdf98sdfusd98fjs9df98sd9f" />
</FileTypes>

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

Может быть, у вас совсем другое / лучше?идея, пожалуйста, дайте мне знать или сделать предложения о преимуществах / недостатках сохранения базы данных / xml:)

Ответы [ 2 ]

0 голосов
/ 24 июня 2011

Если у вас несколько типов файлов и огромное количество файлов, лучше хранить эти типы файлов в виде базы данных file_type_master или XML-файла и загружать их один раз, когда вы будете использовать их повсюду.Но это хорошо, когда есть хороший компромисс с точки зрения загрузки и использования.Или вы также можете сделать вид кэширования.

0 голосов
/ 21 марта 2011

Всегда избегайте хранения двоичных изображений в базах данных.запрос и прикрытие над головой.лучший способ для этой конкретной опции - сохранить все изображения как ресурсы и сохранить имя ресурса в базе данных. Это можно сделать, сохранив перечисление имен ресурсов и проанализировав имена (eNUM.PARSE) в onrowdataboundпривязка источника к шаблону ячейки строки данных.ячейка может содержать изображение в качестве содержимого шаблона.

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