![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| JulT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
Всем приветики.
Есть табличка, в ней данные, некоторые ячейки могут быть выделены определенным цветом в зависимости от того проверенная ли информация находиться в ней или нет. Не знаю как мне это реализовать в базе, под каждую ячейку нельзя же заводить поле, которое будет хранить ее цвет, это ж криво как-то. Как быть. Спасибо. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
А на основе чего информация в базе считается проверенной, это некий столбец?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| kashka |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 29.11.2004 Где: Wolfenbuettel, Ge rmany Репутация: нет Всего: 1 |
Я делала с помощю TableCellRender.
А функция redOrNotred проверяла ошибка у меня в строке или нет:
Добавлено @ 19:11 надеюсь поможет |
||||
|
|||||
| JulT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
это не конкретный столбец, любая ячейка может иметь статус не проверенной не проверенная значит, что там есть информация, которую необходимо уточнить |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Я спрашиваю про критерий определения не проверенности информации. Ведь сами данные в СУБД не имеют атрибута достоверности, это уже наша собственная придумка. Или тебе как раз надо такой критерий придумать и воплотить (как его хранить, заполнять и т.п.)? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| JulT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
да, так и нужно сделать, но не знаю как
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Можно хранить эти данные в самой таблице, а можно внести во внешнюю. Если непроверенных данных будет мало (не более 1-2% от всех данных), то лучше внешняя таблица. Если много, то лучше в самой таблице хранить и запросы к базе данных будут поменьше.
Какой у тебя случай? И какая СУБД планируется? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Да и еще, вся строка может быть непроверенной, или отдельные поля?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| JulT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
отдельные поля также могут быть не проверенными. субд-оракл9i в принципе может быть многовато, а может инет,это как жизнь покажет пока ничего нельзя сказать |
|||
|
||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Как вариант:
Для столбцов таблицы БД типа Varchar2 можно использовать определенные префиксы, скажем 'GREEN$' для проверенных, 'RED$' - для непроверенных. В Renderer парсить val: префикс - для фона, остальное показывать. Для Date и Number, в принципе, тоже "ухитриться" можно. Возможно, не супер, но число таблиц и столбцов не увеличится. Более красиво и в духе ООП - объектные типы в БД, но с ними несколько сложнее. -------------------- Хотите поговорить об этом? |
|||
|
||||
| LSD |
|
||||||||||||||||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
У меня получилось 4 варианта:
Пусть есть исходная таблица:
1. Добавить для каждого столбца, еще один дополнительный столбец который будет флагом проверенности данного столбца:
Тут в принципе все очевидно, и как делать выборку и как его заполнять. Преимущества: реализуем на всех СУБД, позволяет использовать индексы, можно легко добавлять новые столбцы. Недостатки: существенно увеличивается объем хранимых данных. 2. Добавить еще один дополнительный который будет хранить в себе битовые флаги проверенности столбца:
Выборку по данному столбцу, можно делать так:
В данном случае 2 это номер столбца, который является непроверенным. Преимущества: реализуем на всех СУБД, позволяет использовать индексы (но только на СУБД поддерживающих индексы по функции), можно добавлять новые столбцы. Недостатки: увеличивается объем хранимых данных, не на всех СУБД можно индексировать поиск, в приложении требуется хранить список столбцов и соответсвующих им номеров. 3. Создать тип вложенная таблица и использовать его для хранения имен столбцов:
Вставка данных производится следующим образом:
Запрос на получение списка столбцов для конкретной записи выглядит так:
получим
Запрос на выборку всех строк у которых стобец FIRST_NAME не проверен:
Получим:
Преимущества: можно свободно добавлять и удалять столбцы, расход места минимален, можно хранить неограниченное количество дополнительных аттрибутов. Недостатки: реализуем только в Oracle, при миграции на другую СУБД надо будет менять логику, запросы к БД усложняются. 4. Тот что сказал igon. Наверно самый правильный с точки зрения ООП, но и самый трудоемкий в реализации. Если проект не большой, то я бы тебе советовал использовать первый способ. Дополнительный расход места в Oracle будет 2 байта на столбец, мне кажется с этим можно мириться. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||||||||||||||||
|
|||||||||||||||||||||
| igon |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Хм, а мне nested tables всегда казались интуитивно весьма непрозрачными ... Вот как (в стиле LSD) будет выглядеть этот вариант:
Как видим, ничего сложного, а для Java-иста - даже хорошо -------------------- Хотите поговорить об этом? |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Согласен. Я просто по привычке, хотел доступ к полям реализовывать через методы (в лучших традициях ООП). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |