如何初始化表格,以便在包含100个问题的表单上存储不同的答案(SQLite3和Python)
因此,我刚刚开始学习SQLite(以前从未使用过数据库),我有一个表“users”,该表由“user_id”、“email”、“age”、“sex”、“password”组成。我想将“user_id”INT“链接”(join..?)到一个用户特定的(不同的)表,该表将包含用户对100个不同问题的答案。我想存储每个问题的答案。然后计算问题的答案并将其存储在8个不同的变量中。它将显示在条形图中。那我该怎么做呢 正如我现在所想的,我将创建一个新表,该表将在其特定于用户的行中包含所有不同的用户答案。在第1列中包含“user_id”(将“链接”两个不同的表)的行,在第2-101列中存储答案,在第102-110列中存储计算结果。这是“正确的方式”吗 此外,在初始化存储答案的表时,执行以下操作似乎有点乏味:如何初始化表格,以便在包含100个问题的表单上存储不同的答案(SQLite3和Python),python,sqlite,Python,Sqlite,因此,我刚刚开始学习SQLite(以前从未使用过数据库),我有一个表“users”,该表由“user_id”、“email”、“age”、“sex”、“password”组成。我想将“user_id”INT“链接”(join..?)到一个用户特定的(不同的)表,该表将包含用户对100个不同问题的答案。我想存储每个问题的答案。然后计算问题的答案并将其存储在8个不同的变量中。它将显示在条形图中。那我该怎么做呢 正如我现在所想的,我将创建一个新表,该表将在其特定于用户的行中包含所有不同的用户答案。在第
CREATE TABLE IF NOT EXISTS answers(
id INTEGER PRIMARY KEY,
question_1 INTEGER,
question_2 INTEGER,
question_3 INTEGER,
.
.
.
question_99 INTEGER,
question_100 INTEGER,
sums_1 INTEGER,
sums_2 INTEGER,
.
.
.
sums_8 INTEGER
)
我怎样才能做到最好
刚刚试过这个:
db = sqlite3.connect("tests.db")
c = db.cursor()
c.execute('''
CREATE TABLE IF NOT EXISTS answers(
id INTEGER PRIMARY KEY,
''')
for i in range(100):
c.execute('''
ALTER TABLE answers
ADD ''' + 'question_' + i + '''INTEGER''')
db.commit()
但它没有起作用。为什么?所以听起来您已经有了两个表,
user
和question
,它们存储每个用户的数据,然后存储每个用户询问的问题。现在,您需要存储每个问题和每个用户的答案。这就是我们所说的多对多关系。这意味着每个用户回答许多问题,并且对于每个问题都有许多用户给出了答案。要将其存储在answer
表中,需要4列:
createtable
语句留给读者作为练习
我假设你已经有了一张有问题的桌子。如果没有,则应创建一个至少包含两列的列:
VARCHAR
如果你不熟悉主键和外键,你一定要花时间去了解它们。这些是任何关系数据库的基础,因为它们定义了使其成为“关系数据库”的关系。因此,听起来您已经有了两个表,
user
和question
,它们存储关于每个用户的数据,然后是每个用户询问的问题。现在,您需要存储每个问题和每个用户的答案。这就是我们所说的多对多关系。这意味着每个用户回答许多问题,并且对于每个问题都有许多用户给出了答案。要将其存储在answer
表中,需要4列:
createtable
语句留给读者作为练习
我假设你已经有了一张有问题的桌子。如果没有,则应创建一个至少包含两列的列:
VARCHAR
如果你不熟悉主键和外键,你一定要花时间去了解它们。这些是任何关系数据库的基础,因为它们定义了使其成为“关系数据库”的关系。在列名中使用数字始终是可以做不同事情的标志。我想你需要退一步想想你在这里储存了什么?答案是什么?您真的需要存储个人答案吗?还是创建一个问题表来存储问题有意义?您是否已经有了一个包含问题的表?在列名中使用数字始终是您可以做一些事情的标志