Найти - Пользователи
Полная версия: Sqlite3: update
Начало » Базы данных » Sqlite3: update
1
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'))
Понятное дело, такой код не работает. Хотелось бы узнать, как решить такую дилемму?
PooH
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'))
Понятное дело, такой код не работает. Хотелось бы узнать, как решить такую дилемму?
Нормализовать схему данных, разбить эту таблицу на три:

user(id, прочие атрибуты…)
mark(id, прочие атрибуты…)
result(user_id пользователя, mark_id, value)

И тогда все будет легко:
i = 2
sel = cur.execute('update result set value = ? where user_id = ? and mark_id = ? ', (50,'user1', i))
PS: И кстати, то что стоит перед вами не дилемма, а проблема http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BB%D0%B5%D0%BC%D0%BC%D0%B0

PPS: И да, я зануда :)
o7412369815963
cur.execute('update results set mark%d = ? where user = ?' % (1,), (50,'user1'))
> Нормализовать схему данных, разбить эту таблицу на три:
имхо, для данной задачи это не оптимально. “user(id, прочие атрибуты…)” , mark1-3 - это как раз те самые “прочие атрибуты…”
PooH
o7412369815963
> Нормализовать схему данных, разбить эту таблицу на три:
имхо, для данной задачи это не оптимально. “user(id, прочие атрибуты…)” , mark1-3 - это как раз те самые “прочие атрибуты…”
имхо, для любой задачи - лучше дойти хотя-бы до третей нормальной формы. А денормализацию уже выполнять когда проблемы с производительностью
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB