2016-08-04 2 views
0

Я храню данные ежедневного артериального давления пациентов в таблице SQLite3. Каждому пациенту соответствует строка, каждая дата соответствует столбцу. Как инициализировать эту таблицу с именами столбцов, которые являются датами из серии Python Pandas? Возможно, что-то вроде:Как создать таблицу SQLite3 с именами столбцов из списка?

DATE_LIST = pandas.date_range(start_date, end_date) 
cursor.execute('''CREATE TABLE bloodpressure DATE_LIST REAL''') 

выше будет создать таблицу с одним столбцом с именем DATE_LIST, который не то, что я хочу. Я хочу использовать даты в DATE_LIST как имена столбцов.

ответ

0

Вы нарушаете 1NF баз данных. Рассмотрим реструктуризацию базы данных, чтобы она соответствовала нормальной форме.

Проще говоря, каждый ряд должен быть артериальным давлением пациентов в определенный момент.

patient_id | bloodpressure | date 
-----------+---------------+----------- 
101  | 120/80  | 2016-08-04 
101  | 130/84  | 2016-08-03 
102  | 150/90  | 2016-08-03 

SQL-оператор, чтобы создать это может выглядеть примерно так

CREATE TABLE bloodpressure (
    patient_id integer, 
    bloodpressure text, 
    date text, 
    primary key(patient_id) 
) 
+0

Не могли бы вы объяснить, почему я разорвать 1nf? Согласно [this] (http://www.tutorialspoint.com/sql/first-normal-form.htm) у меня не должно быть повторяющихся групп данных. Решение, предложенное в этом посту, повторяет дату столько раз, сколько есть пациентов. Он становится громоздким, когда количество показаний артериального давления для каждого пациента очень велико. – tnabdb