|
|
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
Есть таблица с техническими документами. Пользователю интересны, как конкретные атрибуты документа, так и возможность посмотреть на сам документ (word, excel). 1. Что лучше хранить документы на сервере (структуировано в папках), а в таблице завести текстовое поле с ссылкой на тех документ? 2. Хранить сам документ в БД? 3. Есть еще какое-то элегантное решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 13:27 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
vitaliy14Есть таблица с техническими документами. Пользователю интересны, как конкретные атрибуты документа, так и возможность посмотреть на сам документ (word, excel). 1. Что лучше хранить документы на сервере (структуировано в папках), а в таблице завести текстовое поле с ссылкой на тех документ? 2. Хранить сам документ в БД? 3. Есть еще какое-то элегантное решение? 1. В БД лучше хранить конкретные атрибуты документа и относительный путь к документу в файловом хранилище. 2. Не стоит, скорость доступа к BLOB'ам по определению всегда меньше, чем доступ к файлу. Если тех. документация - это объемные сканированные схемы, то об этом лучше подумать заранее. 3. Не знаю насколько элегантное, но решение, думаю, есть. Несложный FTP-сервер, через который получаете файлы документов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 13:52 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
Забыл добавить. ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 14:08 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
Эта тема обсасывалась уже N раз. Почему бы не воспользоваться поиском? Мое ИМХО - хранить в базе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 16:35 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
однозначно в базе - так не будет нарушена ссылочная целостность ни при каких обстоятельствах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 16:47 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
vitaliy14, в базе данных хранят файлы только и исключительно имбецилы. Организовать и поддерживать файловый архив (причем, с зеркалами, балансированием нагрузки (как вариант - распределенное)) - сильно дешевле и проще, чем хранить все это дерьмо в базе данных. Вы ее бэкапить собираетесь? Собираетесь различать версии документов? Просто возьмите калькулятор и посчитайте, сколько будет стоить железка для такой базы данных с течением времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 19:07 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Вы ее бэкапить собираетесь? Собираетесь различать версии документов? Просто возьмите калькулятор и посчитайте, сколько будет стоить железка для такой базы данных с течением времени. Просто делайте разностный бэкап, вот и всё! А потом, файловый архив что, разве не будете бэкапить? И не на железке ли вы его хранить будете? Или вы хотите сказать что 10Мб в виде файла и 10Мб в базе будут по разному бэкапиться? Полная чушь. А вот с нарушением ссылочной целостности, когда ссылка на файл есть, а файла реально нет - с таким лично мне очень часто приходится встречаться. И эта проблема не имеет принципиального решения, поскольку транзакции в СУБД и файловой системе невозможно синхронизировать на 100%, поскольку поддерживаются они различными механизмами. Ну а вообще тут многое ещё зависит от того, что за файлы вы собираетесь хранить, какого размера, как часто они будут подвергаться чтению/записи и многое другое. Скорость считывания данных из файла и из БД в современных системах практически одинакова, поскольку и то и другое в конечном счёте физически хранится в файлах, а современные системы способны создавать множественные потоки данных. Более того, в случае хранения в базе данных из небольших файлов (типа небольших текстовых документов, иконок, и т.п.), их хранение будет более эффективным, чем в файле из-за дефрагментации в ФС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2008, 20:11 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
iv250973Скорость считывания данных из файла и из БД в современных системах практически одинакова, поскольку и то и другое в конечном счёте физически хранится в файлах, а современные системы способны создавать множественные потоки данных. Более того, в случае хранения в базе данных из небольших файлов (типа небольших текстовых документов, иконок, и т.п.), их хранение будет более эффективным, чем в файле из-за дефрагментации в ФС. Это все в теории так кучеряво получается, а на практике ... Автор сказал "техническая документация" будет храниться. Это схемы, сканированные документы, документы Word или PDF и пр. Очень быстро база "распухнет". Насчет одинаковой скорости доступа - это Вы напрасно. Не может быть фетч из таблицы быть быстрее считывания файла, не надо про дефрагментацию рассказывать. В некоторых базах (в MSSQL, например) BLOB'ы замедляют выборку прочих данных из других столбцов в таблице при включенной опции text in row . Пусть это и баян, но выскажу свое скромное мнение. ИМХО, пусть каждая часть инф. системы занимается своей функцией. БД хранит данные, файловая система - файлы. Целостность данны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 11:14 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
Senya_L Очень быстро база "распухнет" А файловые ресурсы не распухнут ли? Senya_L В некоторых базах (в MSSQL, например) BLOB'ы замедляют выборку прочих данных из других столбцов в таблице при включенной опции text in row[quot Senya_L ] Есессно, при таком подходе есть определённая специфика. Не стоит выбирать такие столбцы в селектах, выбирающих несколько столбцов и т.п. [quot Senya_L ]Насчет одинаковой скорости доступа - это Вы напрасно. Не может быть фетч из таблицы быть быстрее считывания файла В случае простого запроса - скорость практически одинакова, проверено на практике (сервер, получив запрос, найдя начальную позицию блока данных просто втупую выполняет операции считывания данных из файла). А потом, если вам по барабану проблемы ссылочной целостности, ради бога - храните свои потоки байтов в отдельных файлах. А на практике несколько раз сталкивался с подобными системами, и могу подтвердить из собственного опыта, что недействительные ссылки - не миф, а суровая действительность, от которой рядовые пользователи этих систем не в восторге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2008, 11:37 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
Я так понял - сколько людей, столько мнений! Из прочитанных споров между сторониками двух концепций (в этом топике и по форуму), я сделал вывод: 1. Если размер хранимых файлов исчисляется 10-ми, если не 100-ми МБ, то однозначно лучше файлы хранить в ФС, а в БД ссылку (путь) на файл. 2. Если документы - аля word, excel размером от нескольких кБ до 10 МБ, то лучше хранить в БД! И АБД спасибо скажет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 15:45 |
|
||
|
Как лучше хранить ссылку на файл?
|
|||
|---|---|---|---|
|
#18+
to vitaliy14 На самом деле всё зависит от целей. Если хочешь максимального быстродействия и минимум заморочек при проектировании БД и приложений - то хранить в ФС. Если во главу угла ставится целостность данных - то в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2008, 16:11 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=100&tid=1543729]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 385ms |

| 0 / 0 |
