crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как работать с таблицей, содержащей уникальный набор значений типа double?
Steklova Olga
  опции профиля:
сообщение 11.6.2013, 10:18
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Всем привет :)
В таблице БД FireBird надо хранить массивы значений F_FR для разных объектов (TO_F_OBJ_NMB - номер объекта).
Значения содержат 1..6 цифр в целой части, 2 цифры в дробной части, значения положительные.
Для конкретного объекта массив F_FR не должен содержать повторяющиеся значения.


Таблица создана так
--TABLE T_OBJ_FR может содержать 0...100 значений F_FR для каждого TO_F_OBJ_NMB
CREATE TABLE T_OBJ_FR (
    F_RECORD_NMB     INTEGER NOT NULL, --генератор
    TO_F_OBJ_NMB     INTEGER NOT NULL, --внешний ключ
    F_FR             DOUBLE PRECISION NOT NULL
);
ALTER TABLE T_OBJ_FR ADD CONSTRAINT PK_T_OBJ_FR PRIMARY KEY (F_RECORD_NMB);

Для корректировки таблицы T_OBJ_FR использую диалог,
в котором для корректировки поля F_FR использую doubleSpinBox.

Мне непонятно вот что:
1) можно ли создать уникальный ключ, содержащий поле типа DOUBLE PRECISION? (например, создать уникальный ключ (TO_F_OBJ_NMB, F_FR))
2) если не создавать уникальный ключ, то как проверить, есть ли уже в таблице только что введенное оператором в doubleSpinBox значение F_FR? (как написать SELECT?)
3) не лучше ли будет описать поле F_FR как NUMERIC(8,2), а не DOUBLE PRECISION?
4) можно ввести значение типа NUMERIC(8,2) с помощью doubleSpinBox?
5) можно создать уникальный ключ, содержащий поле типа NUMERIC?

Сообщение отредактировал Steklova Olga - 13.6.2013, 9:15
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 15.6.2013, 14:39
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Steklova Olga @ 14.6.2013, 11:43) *
Не стала его переделывать на поле с фиксированной запятой типа NUMERIC или DECIMAL
тонкостей у этих типов нет ни каких, лучше всё-таки защитить данные на уровне БД
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 1:05