хранение определённого максимума для значений и самих значений в БД
Суть такая - мне надо хранить в базе данных (ms sql) 9 разных значений, они могут уменьшаться и увеличиваться (независимо друг от друга). НО мне также надо время от времени сбрасывать эти значения до изначального состояния. Я подумал, что пожно хранить всё это в двух массивах, но оказалось, что массивы в бд хранить нельзя. А если создавать каждое поле, то получится 18 столбцов в бд. Изначально я хотел сделать так - хранить все эти значения в виде одной строки (пример - "1 2 5 6 7.."), а когда надо просто парсить их и доставать значения. Вопрос - насколько это костыль и как можно его обойти?
Ответы (1 шт):
Дело в том, что хранение значений в базе данных напоминает не записи последовательных значений в строку, а, скорее, запись значений в столбец, где рядом со значением находится его идентификатор. Обычно его называют primary key.
Примерно на SQL это выглядит так:
insert into Table1 (id, val) values (1, 176)
Здесь 176 - значение, а 1 - это идентификатор, по котормоу можно это значение достатьь обратно из базы, примерно так:
select val from Table1 where id = 1
При этом сама Table1 сотоит из двух столбцов - id и val
Если значение изменилось, и надо сохранить инфу об этом в базк - то в sql это будет как то так:
update Table1 set val=177 where id=1
Дальше начинаются тонкости. Одно дело - это хранить "мгновеннное состояние" значений 9 переменных (для этого достаточно просто использовать id от1 до 9). Но иногда надо сохранить историю изменений - например, чтобы потом построить графики изменения температуры, измеренной 9 разными датчиками. Тогда - в таблицу надо добавить еще один столбец, время, и использовать только Insert - то есть, только добавлять данные.
Надеюсь, мой ответ поможет