2017-02-21 71 views
0

Интересно, может ли кто-нибудь помочь с вопросом db. Я использую Rails 5 и MySQL;Rails 5 MySQL: столбец таблицы как сумма двух других столбцов

Я хочу создать таблицу, в которой есть 3 целых столбца. Столбцы 1 и 2 заполняются пользователем, а столбец 3 является результатом c1xc2 и должен храниться как целое число. Как я могу создать такую ​​таблицу? Я могу с радостью создать таблицы без последнего расчетного столбца, просто не уверен, что это лучший способ.

Я считаю, что, возможно, мне не нужно последнюю колонку на всех, а каждый раз, когда требовалось вычисление я мог вынести результаты, используя Еврорадио со ссылкой на c1 и c2

Каковы преимущества если таковые имеются для хранения продукта в таблице/

Большое спасибо.

ответ

1

Что преимущества если в хранении продукта в таблице

Если у вас нет ничего конкретного сказать по этому вопросу («выгоды») - нет, а нет.

Я считаю, что, возможно, мне не нужен последняя колонка на всех, но , а каждый раз, когда расчет был нужен я мог бы вынести результаты использование Еврорадио со ссылкой на c1 и c2

Точно, вы этого не делаете. В

SELECT col1, col2, (col1 + col2) AS col3 FROM yourtable WHERE col1 = <something>; 

Сумма не стоит ничего по сравнению с поиском/извлечением записей (в отличие от предлагаемого решения триггера).

+0

Я думаю, что это в целом право, существует ряд способы сделать это, mysql или erb, но вычислять по мере необходимости, кажется лучше, чем хранить потенциально многозначную сумму –

0

Вы можете использовать триггеры пользователя. Как и до обновления.

Но будьте осторожны, поэтому одна из столбцов может быть NULL. Итак, здесь вам нужно использовать IFNULL.

+0

Хорошо, я думаю, но как бы создать таблицу, в которой этот продукт хранится автоматически в результате ввода пользователем для 1 и 2 ... –