powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше хранить ссылку на файл?
12 сообщений из 12, страница 1 из 1
Как лучше хранить ссылку на файл?
    #35465533
vitaliy14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица с техническими документами. Пользователю интересны, как конкретные атрибуты документа, так и возможность посмотреть на сам документ (word, excel).

1. Что лучше хранить документы на сервере (структуировано в папках), а в таблице завести текстовое поле с ссылкой на тех документ?
2. Хранить сам документ в БД?
3. Есть еще какое-то элегантное решение?
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35465610
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitaliy14Есть таблица с техническими документами. Пользователю интересны, как конкретные атрибуты документа, так и возможность посмотреть на сам документ (word, excel).

1. Что лучше хранить документы на сервере (структуировано в папках), а в таблице завести текстовое поле с ссылкой на тех документ?
2. Хранить сам документ в БД?
3. Есть еще какое-то элегантное решение?
1. В БД лучше хранить конкретные атрибуты документа и относительный путь к документу в файловом хранилище.
2. Не стоит, скорость доступа к BLOB'ам по определению всегда меньше, чем доступ к файлу. Если тех. документация - это объемные сканированные схемы, то об этом лучше подумать заранее.
3. Не знаю насколько элегантное, но решение, думаю, есть. Несложный FTP-сервер, через который получаете файлы документов
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35465649
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл добавить. ИМХО
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35466083
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта тема обсасывалась уже N раз. Почему бы не воспользоваться поиском?

Мое ИМХО - хранить в базе
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35466116
igor250973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
однозначно в базе - так не будет нарушена ссылочная целостность ни при каких обстоятельствах
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35466378
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitaliy14, в базе данных хранят файлы только и исключительно имбецилы. Организовать и поддерживать файловый архив (причем, с зеркалами, балансированием нагрузки (как вариант - распределенное)) - сильно дешевле и проще, чем хранить все это дерьмо в базе данных. Вы ее бэкапить собираетесь? Собираетесь различать версии документов? Просто возьмите калькулятор и посчитайте, сколько будет стоить железка для такой базы данных с течением времени.
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35466433
iv250973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621 Вы ее бэкапить собираетесь? Собираетесь различать версии документов? Просто возьмите калькулятор и посчитайте, сколько будет стоить железка для такой базы данных с течением времени.
Просто делайте разностный бэкап, вот и всё! А потом, файловый архив что, разве не будете бэкапить? И не на железке ли вы его хранить будете?
Или вы хотите сказать что 10Мб в виде файла и 10Мб в базе будут по разному бэкапиться? Полная чушь.
А вот с нарушением ссылочной целостности, когда ссылка на файл есть, а файла реально нет - с таким лично мне очень часто приходится встречаться. И эта проблема не имеет принципиального решения, поскольку транзакции в СУБД и файловой системе невозможно синхронизировать на 100%, поскольку поддерживаются они различными механизмами.
Ну а вообще тут многое ещё зависит от того, что за файлы вы собираетесь хранить, какого размера, как часто они будут подвергаться чтению/записи и многое другое.
Скорость считывания данных из файла и из БД в современных системах практически одинакова, поскольку и то и другое в конечном счёте физически хранится в файлах, а современные системы способны создавать множественные потоки данных. Более того, в случае хранения в базе данных из небольших файлов (типа небольших текстовых документов, иконок, и т.п.), их хранение будет более эффективным, чем в файле из-за дефрагментации в ФС.
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35468240
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv250973Скорость считывания данных из файла и из БД в современных системах практически одинакова, поскольку и то и другое в конечном счёте физически хранится в файлах, а современные системы способны создавать множественные потоки данных. Более того, в случае хранения в базе данных из небольших файлов (типа небольших текстовых документов, иконок, и т.п.), их хранение будет более эффективным, чем в файле из-за дефрагментации в ФС.
Это все в теории так кучеряво получается, а на практике ... Автор сказал "техническая документация" будет храниться. Это схемы, сканированные документы, документы Word или PDF и пр. Очень быстро база "распухнет". Насчет одинаковой скорости доступа - это Вы напрасно. Не может быть фетч из таблицы быть быстрее считывания файла, не надо про дефрагментацию рассказывать. В некоторых базах (в MSSQL, например) BLOB'ы замедляют выборку прочих данных из других столбцов в таблице при включенной опции text in row .

Пусть это и баян, но выскажу свое скромное мнение.
ИМХО, пусть каждая часть инф. системы занимается своей функцией. БД хранит данные, файловая система - файлы. Целостность данны
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35468334
igor250973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L Очень быстро база "распухнет"
А файловые ресурсы не распухнут ли?
Senya_L В некоторых базах (в MSSQL, например) BLOB'ы замедляют выборку прочих данных из других столбцов в таблице при включенной опции text in row[quot Senya_L ]
Есессно, при таком подходе есть определённая специфика. Не стоит выбирать такие столбцы в селектах, выбирающих несколько столбцов и т.п.
[quot Senya_L ]Насчет одинаковой скорости доступа - это Вы напрасно. Не может быть фетч из таблицы быть быстрее считывания файла
В случае простого запроса - скорость практически одинакова, проверено на практике (сервер, получив запрос, найдя начальную позицию блока данных просто втупую выполняет операции считывания данных из файла).

А потом, если вам по барабану проблемы ссылочной целостности, ради бога - храните свои потоки байтов в отдельных файлах. А на практике несколько раз сталкивался с подобными системами, и могу подтвердить из собственного опыта, что недействительные ссылки - не миф, а суровая действительность, от которой рядовые пользователи этих систем не в восторге.
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35471482
vitaliy14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял - сколько людей, столько мнений! Из прочитанных споров между сторониками двух концепций (в этом топике и по форуму), я сделал вывод:

1. Если размер хранимых файлов исчисляется 10-ми, если не 100-ми МБ, то однозначно лучше файлы хранить в ФС, а в БД ссылку (путь) на файл.
2. Если документы - аля word, excel размером от нескольких кБ до 10 МБ, то лучше хранить в БД! И АБД спасибо скажет!
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35471582
igor250973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to vitaliy14
На самом деле всё зависит от целей.
Если хочешь максимального быстродействия и минимум заморочек при проектировании БД и приложений - то хранить в ФС.
Если во главу угла ставится целостность данных - то в БД.
...
Рейтинг: 0 / 0
Как лучше хранить ссылку на файл?
    #35471712
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше хранить ссылку на файл?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]