@Gosha_rubchick

Как сохранить несколько путей картинок привязанных к user_id в PSQL?

Пишу бота на библиотеке Aiogram и мне необходимо сохранять полученные пользователями картинки в БД.
На данном этапе БД выглядит так:
6513209dcadb5180649318.png
Функция сохранения картинки в БД
def save_card (user_id, card):
    with psycopg2.connect(*) as con:
        try:
            userid = user_id
            cards = card    
            cur = con.cursor()
            cur.execute("UPDATE users SET card_t = %s WHERE user_id = %s", [cards, userid])
        except:
            print ('*')
            
    if con:
            con.close

В хендлере это выглядит так:
rnd = os.listdir('path_to_png/')
    rnd1 = random.choice(rnd)
    save_card(user_id=clbck.from_user.id, card=rnd1)
    photo = FSInputFile ('path_to_png/' + rnd1, 'rb')
    await clbck.message.answer_photo (photo)


Вопрос заключается в следующем:
Как правильно сохранять картинки, учитывая что при нажатии кнопки, они появляются рандомно.

После сохранения, уже в другой функции надо будет вытаскивать пути и выводить их пользователю

P.S. Сразу прошу прощения если предоставил слишком много текста
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Если у каждого юзера может быть несколько картинок то на языке реляционных баз данных это решается связью один ко многим и реализуется двумя таблицами:
create table users (
    id serial primary key,
    balance numeric(9, 2)
);

create table user_cards (
    id serial,
    user_id int references users(id),
    filename text
);


https://sqlize.online/sql/psql15/314713535ad01ccfc...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы