Какую выбрать разметку sqlite3 для телеграм бота на python

Я использую следующие таблицы

'''

class Users(Base):

__tablename__ = "users"

id: Mapped[int] = mapped_column(primary_key=True)
tg_id = mapped_column(BigInteger)

participants_rel: Mapped[List['Participants']] = relationship(back_populates="user_rel")
введите сюда код

class Events(Base):

__tablename__ = "events"

id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str] = mapped_column(String(100))
description: Mapped[str] = mapped_column(String(1024))
date: Mapped[DateTime] = mapped_column(DateTime)

participants_rel: Mapped[List['Participants']] = relationship(back_populates="event_rel")

class Participants(Base):

__tablename__ = "participants"

id: Mapped[int] = mapped_column(primary_key=True)
user: Mapped[int] = mapped_column(ForeignKey("users.id"))
event: Mapped[int] = mapped_column(ForeignKey("events.id"))

user_rel: Mapped['Users'] = relationship(back_populates="participants_rel")
event_rel: Mapped['Events'] = relationship(back_populates="participants_rel")
'''

И у меня вопрос. Можно ли просто создать в таблице Events колонку участников принимающую список, чтобы облегчить код не добавляя в него функции для поиска tg_id по Users.id через отношения между этими таблицами в случае если нужно будет сделать рассылку или просто вывести список записавшихся на это мероприятие. ИИ говорит, что такой подход нарушает реляционные принципы построения баз данных. И у меня опасения, что я что-то могу сделать не так, а переделывать работающего бота будет в 100 раз сложнее. Кстати. Количество записавшихся вряд ли перевалит за 100. В самом крайнем случае 1000


Ответы (0 шт):