Ответы пользователя по тегу Базы данных
  • Как хранить временные ряды?

    Violetdrug
    @Violetdrug
    Если данных очень много, то лучше использовать Mongo, она не тормазит при разростании.
    Если в приделах разумного, то MySql

    Для MySQL советую такую схему:
    Каждая строка соответствует одному устройству, данные хранятся в полнотекстовом поле в виде
    { 'timestamp': '', 'value':'', {… }},{ 'timestamp': '', 'value':'', {… }},{ 'timestamp': '', 'value':'', {… }},…
    Каждую запись добавляем коммендой

    $query="INSERT INTO `bd`.`table` ( `json`,`keyid`) VALUES ("{ \"timestamp\": \"\", \"value\":'', {… }}', '".$keyid."')". " ON DUPLICATE KEY"." UPDATE `json` =CONCAT(`json`,',{ \"timestamp\": \"\", \"value\":'', {… }}'), keyid='".$keyid."'" ;

    тем самым в поле будет дописываться очередное значение Json.

    А когда будете запрашивать из базы

    $res="{'hist':[".row['json']."]}"; $poll=json_decode($res);

    $poll->hist — и будет сам набор данных

    Если нужны будут комментарии, или что-то не будет из этого работать, пишите в личку, помогу.
    Ответ написан
    2 комментария