Я нахожусь в виде выбора типа данных в таблице ниже в sqlite. Столбцы, выделенные желтым цветом, представляют собой пользовательские входы, а остальные - вычисленные поля. Скриншот отображает таблицу, а не таблицу sqlite! Лучший тип DataType для моей таблицы в SQLite
Из полученных знаний сказано, что выбор типа данных (в измеримой степени) влияет на значения вычисленных полей.
Например, я делаю таблицу sqlite ELZ_A
, где все поля ввода, кроме DATE, влево & все вычисленные поля вправо. Если затем добавить triggers
UPDATE ELZ_A SET CURRENT_DENSITY = ROUND((LOAD/2.721), 2);
UPDATE ELZ_A SET VOLTS_AVG = ROUND((VOLTS_T/ELEMENTS), 2);
UPDATE ELZ_A SET VOLTS_STNDR = ROUND(2.4 + ((12.75/2.721) * ((VOLTS_AVG - 2.4)/CURRENT_DENSITY) - ((90 - CATHOLYTE_TEMP) * 0.01) + ((32 - CATHOLYTE_CONC) * 0.02)), 4);
UPDATE ELZ_A SET KF_FACTOR = ROUND(((VOLTS_AVG - (90 - CATHOLYTE_TEMP) * 0.016 * ((LOAD/2.721)/5)) + ((32 - CATHOLYTE_CONC) * 0.033 * ((LOAD/2.721)/5) - 2.4))/(LOAD/2.721), 4);
Как можно видеть вычисляемое поле VOLTS_STNDR
далее используется для расчета KF_FACTOR
также я округление первые два результата до 2 мест, в то время как последний ДО 4 ... Так как я могу заверить, используя данные -тип лучше всего подходит для отображаемых данных, чтобы получить точные расчетные ответы родственных, что EXCEL вычисляет
проблемы пояснено @SQLite Студия v3.0.6 @Debian x32
Все мои столбцы содержат десятичные знаки, кроме Элементов (которые являются целыми числами), поэтому я использую ... до EFFICIENCY
являются входными данными пользователя, далее вычисляются столбцы.
Теперь я с этой проблемой Как можно наблюдать, где EFFICIENCY
представляет собой целое число производств становится равным нулю ?? Так почему же эта проблема. Проблема смягчается настройки Datatypes такие как ... но это еще сбивает с толку, так как я не могу понять действительную причину
SQL-представление может вычислять вычисленные данные, действуя как обычная таблица. Когда вы храните вычисляемые значения в реальных таблицах, вы рискуете, что ваши вычисленные данные не соответствуют исходным данным. –
..не сопоставление исходных данных, это невозможно, если ваш запрос не закончил с поврежденным .db – nightcrawler
Уверен, что это возможно: 'INSERT INTO some_table (x, x_plus_two) VALUES (15, 16); UPDATE some_table SET x = 3 WHERE x = 5/* oops забыл обновить x_plus_two * /; ' –