Добрий час доби, форумчани.
У мене є таблиця птахів (bird), з їх голосами (в таблиці service), з полями:
id, field1 (integer), description (string), field2 (blob).
1 _____ 234 ___________ voice _______ mp3
2 _____ 234 ___________image_______ jpg <- например
(Чесно кажучи, назви полів не дуже, тому що в цю таблицю я скидав все поодинокі параметри, які зберігати не де)
До цього моменту було все чудово: користувач ставав на запис з птахом, переглядав її характеристики, і якщо хотів натискав кнопку (з динаміком), і окремим запитом підкачувати голос.
Тепер до кожної птиці, додасться її одна або кілька картинок (або фото), швидше за все одна. Картинка повинна буде відображатися завжди (при переміщенні за списком птахів), якщо вона є в БД.
Тепер напевно доведеться робити все таки окрему таблицю (н-р «features») з полями:
id, voice, image
тобто таблицю з id. і двома полями типу blob (voice і image), тобто НЕ тому в таблиці service. А в табл. bird. поле з посиланням на id в табл. features.
- Зв'язку Master-detail - робити не хотілося б (витягати все blob`и в dataset), якось не дуже ...
Є ще варіант: - «В подію OnDataChange (TDataSource) написати запуск таймера з деякою затримкою, багато більшою ніж автоповтор клавіатури. А вже по спрацьовуванню цього таймера - завантажувати картинки, за допомогою окремого запиту, через який-небудь TIDQuery ». питання:
-- Як буде правильніше вчинити в цій ситуації?
P.S.
У табл. "Bird", записів з одне й тієї ж птахом може бути кілька (не питайте чому)
Тепер напевно доведеться робити все таки окрему таблицю (н-р «features») з полями: id, voice, image
Можна ж створити більш універсальну таблицю в якій буде поля: ID. <Тип данных>(Наприклад: картинка, звук, опис.). <Данные> (Blob поле), <Описание>
Зв'язку Master-detail - робити не хотілося б (витягати все blob`и в dataset), якось не дуже ...
А навіщо завантажувати всі дані? Ви можете вичитати список птахів, опису з таблиці де лежать картинки / звуки. І скажімо при кліці на опис відображати картинку або відтворювати звук. Все залежить яка поставлена задача. Швидше за все доведеться вантажити завжди першу картинку для відображення при "виборі птиці". а потім по необхідності інші.