Russian Qt Forum
Ноябрь 24, 2024, 07:09
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
База данных для хранения фотографий
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: База данных для хранения фотографий (Прочитано 12217 раз)
dsp
Гость
База данных для хранения фотографий
«
:
Май 14, 2011, 23:18 »
Привет.
С бд не работал, но необходимость такая возникла.
Есть программа, которая по нажатию кнопки должна подгружать фотографию.
В качестве изображений выступают фотки коридоров нескольких этажей в здании. Это значит, что фотки должны иметь свою четкую последовательность и принадлежность к этажам.
Вопросы:
1)Из каких таблиц и полей будет состоять бд?
Мои предположения
:
1 Таблица фотографий
id
fileName
2 Таблица дерева расположения фотографий относительно этажа
id
idParentPhoto
номер этажа?
3 Таблица отношения фотографий к этажам
id
photoid
floorid
2) Придется писать отдельный менеджер загрузки фотографий в бд, удаления, вывода полей (для контроля правильности) (скорее всего работа будет в режиме клиент-сервер)?
Спасибо.
Записан
joker
Новичок
Offline
Сообщений: 49
Re: База данных для хранения фотографий
«
Ответ #1 :
Май 15, 2011, 11:50 »
1) Не думаю что твой вариант хорошо - у тебя 2 и 3 собирать будет тяжело (если я правильно понял). Я бы сделал:
1. Этажи
id
name
ord (порядок)
2. Фотографии
id
id_floor
ord (порядок)
dta (данные - собсна сама фотка, блоб)
2) А какие еще могут быть варианты? Твой софт - ты и сервисные функции делаешь
Вот только в отдельной ли программе делать... Тут зависит от того, зачем делается прога. Я бы единую софтинку делал.
Записан
dsp
Гость
Re: База данных для хранения фотографий
«
Ответ #2 :
Май 15, 2011, 12:16 »
Думаю правильно: Если образно, то стоишь ты в начале этажа - вот ты пошел от одного его края до другого (фотки должны идти строго друг за другом). Захотел перейти на другой этаж - уже новые фотки и новый порядок.
Что касается пункта 2, то клиенту незачем иметь функции загрузки фото (на данном этапе разработки). Это скорее лишь моя "привилегия", т.к. я должен загрузить фотки, а у клиента свой софт для просмотра.
Записан
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: База данных для хранения фотографий
«
Ответ #3 :
Май 15, 2011, 12:48 »
1)
Цитата: dsp от Май 15, 2011, 12:16
Думаю правильно: Если образно, то стоишь ты в начале этажа - вот ты пошел от одного его края до другого (фотки должны идти строго друг за другом).
То есть какой-нибудь вот такой конфигурации коридора ( с ветвлением и объединением) быть не может:
Код:
начало************
* *
* *
* *
* *
***************конец
Здесь звёздочки - фотографии.
Такую структуру коридора (а в зданиях встречаются и значительно более сложные) вы ни одним из приведённых способов с базу не закодируете.
Записан
dsp
Гость
Re: База данных для хранения фотографий
«
Ответ #4 :
Май 15, 2011, 13:19 »
Структура будет такая:
1й этаж: начало 2й этаж:начало
* *
* *
*/\/\/\/\/\лестница/\/\/\/\ *
* *
* *
* *
*/\/\/\/\/\лестница/\/\/\/\ *
* *
конец конец ....
Фотки только по цетру
Записан
dsp
Гость
Re: База данных для хранения фотографий
«
Ответ #5 :
Май 15, 2011, 14:52 »
А если сделать такие таблицы
Связь с первой таблицей - через id Фоток. Фоткам дать имена, например (4, 4_1, 4_2 - 4 этаж фотка первая, вторая....). Именование фотографий образует порядок следование.
Либо я чего-то концептуального в построении таблиц не понимаю....
Записан
MoPDoBoPoT
Гость
Re: База данных для хранения фотографий
«
Ответ #6 :
Май 15, 2011, 17:02 »
Нужнавсего лишь одна таблица с такими полями:
id
photo (BLOB или имя файла)
floor
order
Записан
joker
Новичок
Offline
Сообщений: 49
Re: База данных для хранения фотографий
«
Ответ #7 :
Май 15, 2011, 18:05 »
Цитата: dsp от Май 15, 2011, 14:52
А если сделать такие таблицы
Связь с первой таблицей - через id Фоток. Фоткам дать имена, например (4, 4_1, 4_2 - 4 этаж фотка первая, вторая....). Именование фотографий образует порядок следование.
Либо я чего-то концептуального в построении таблиц не понимаю....
Насчет порядка - плохая идея... как пример переход с 9 на 10, с 99 на 100 и тп.. А если формат будешь придумывать, то получишь головную боль с его упорядочиванием - не проще ли именно под порядок завести числовое поле (возможно даже с автоинкременентом).
Да и в принципе, у тебя получается одна плоская таблица, разбитая на 2 части (чтобы труднее выбирать?)
Кстати, это и отметил Павлик:
Цитата: Павлик от Май 15, 2011, 17:02
Нужнавсего лишь одна таблица с такими полями:
id
photo (BLOB или имя файла)
floor
order
Однако, как подсказывает практика, потом обязательно захочется "засунуть" для этажа какий-нить параметр (схему опять же в виде рисунка например) и не получится... Или у этажей названия появятся (пентхауз и тп)
Имхо лучше сразу этаж в отдельную сущность
Записан
MoPDoBoPoT
Гость
Re: База данных для хранения фотографий
«
Ответ #8 :
Май 15, 2011, 18:32 »
Цитата: joker от Май 15, 2011, 18:05
Однако, как подсказывает практика, потом обязательно захочется "засунуть" для этажа какий-нить параметр (схему опять же в виде рисунка например)
и не получится
... Или у этажей названия появятся (пентхауз и тп)
Почему это? (:
Записан
dsp
Гость
Re: База данных для хранения фотографий
«
Ответ #9 :
Май 15, 2011, 18:36 »
т.е. такая таблица выйдет
а имена файлам какие лучше давать?
А ссылка на файл фоток будет в столбце "Фото"?
Записан
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: База данных для хранения фотографий
«
Ответ #10 :
Май 15, 2011, 23:34 »
Цитата: dsp от Май 15, 2011, 18:36
А ссылка на файл фоток будет в столбце "Фото"?
Если у вас клиент-серверная БД, то логичней там не ссылку (путь к файлу), а саму фотку там хранить.
Иначе, как только клиент и сервер окажутся на разных машинах, а БД будут записанны локальные пути к файлу всё и сломается.
см.
Как записать файл в Базу Данных
Записан
dsp
Гость
Re: База данных для хранения фотографий
«
Ответ #11 :
Май 16, 2011, 00:54 »
LisandreL, спасибо. Сейчас гляну ссылку...
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: База данных для хранения фотографий
«
Ответ #12 :
Май 16, 2011, 19:20 »
Цитата: LisandreL от Май 15, 2011, 23:34
Если у вас клиент-серверная БД, то логичней там не ссылку (путь к файлу), а саму фотку там хранить.
Вообще говоря, вопрос очень о том, что лучше хранить в БД файлы или ссылки на них весьма не тривиален. Есть очень много тем (например на SQL.ru), где это обсуждается. Если коротко, то правильное решение зависит от множества факторов - типа СУБД, среднем объеме файлов, их количестве, необходимости репликации БД и т.п.
Цитата: LisandreL от Май 15, 2011, 23:34
Иначе, как только клиент и сервер окажутся на разных машинах, а БД будут записанны локальные пути к файлу всё и сломается.
Вот уж с этим вообще проблем нет - достаточно на сервере реализовать доступ клиенту к каталогу с картинками одним из доступных способов (через хранимые процедуры СУБД, FTP, NFS и т.п.).
Записан
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: База данных для хранения фотографий
«
Ответ #13 :
Май 16, 2011, 23:14 »
Цитата: xokc от Май 16, 2011, 19:20
Вообще говоря, вопрос очень о том, что лучше хранить в БД файлы или ссылки на них весьма не тривиален. Есть очень много тем (например на SQL.ru), где это обсуждается. Если коротко, то правильное решение зависит от множества факторов - типа СУБД, среднем объеме файлов, их количестве, необходимости репликации БД и т.п.
В данном конкретной задаче большой объём не предвидится. Разумеется для больших, сложных, средне/высоко нагруженных систем будут свои нюансы, но это не тот случай.
Записан
dsp
Гость
Re: База данных для хранения фотографий
«
Ответ #14 :
Май 17, 2011, 21:12 »
Что должно быть в итоге:
Отдельное приложение для отображения записей базы данных.
Имеет одну кнопку, которая добавляла бы целую папку, содержащую подпапки (с именами 1 floor, 2 floor...) с фотками.
Я так понимаю, тут рекурсивнй обход нужен?
Зайдя в папку, например 1 floor, копировались бы имена всех фотографий в ней (фотки имели бы имена согласно шаблону №этажа_порядок: 1floor_1order, 1floor_2order...).
Далее, выделяется из имени "№ этажа" и записывается в поле floor. Выделяется "порядок" и записывается в order. Загружаются фотки.
Так вот заполняется таблица.
Что скажете?
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...