Допустим, можно сделать такой код:
i = 2
sel = cur.execute('update results set mark[i] = ? where user = ?', (50,'user1'))
i = 2
sel = cur.execute('update results set mark[i] = ? where user = ?', (50,'user1'))
VasCraftНормализовать схему данных, разбить эту таблицу на три:
Доброго времени суток. Возник вопрос касаемо обновления записей в БД. Допустим, имеется база данных base.db с таблицей results, атрибуты которой user, mark1, mark2, mark3. Имеется запись, где user = ‘user1’, mark1=mark2=mark3 = 0. Допустим, надо обновить mark1-3, но таким способом, чтобы его последняя цифра задавалась через какой-либо параметр i.
Допустим, можно сделать такой код:Понятное дело, такой код не работает. Хотелось бы узнать, как решить такую дилемму?i = 2
sel = cur.execute('update results set mark[i] = ? where user = ?', (50,'user1'))
i = 2
sel = cur.execute('update result set value = ? where user_id = ? and mark_id = ? ', (50,'user1', i))
cur.execute('update results set mark%d = ? where user = ?' % (1,), (50,'user1'))
o7412369815963имхо, для любой задачи - лучше дойти хотя-бы до третей нормальной формы. А денормализацию уже выполнять когда проблемы с производительностью
> Нормализовать схему данных, разбить эту таблицу на три:
имхо, для данной задачи это не оптимально. “user(id, прочие атрибуты…)” , mark1-3 - это как раз те самые “прочие атрибуты…”