Реализация «лайков» во многих приложениях - действительно тривиальная задача. Однако проблема с лайками в приложении, которое я сейчас разрабатываю, заключается в следующем: существует множество сущностей, которые могут быть «любимыми» (например, пост, фотография и т. Д.).
В настоящее время я развернул простой класс Likeable
, который управляет лайками. Моя таблица лайков выглядит так:
like_table = Table('like', metadata,
Column('id', Integer, Sequence('like_id_seq'),
primary_key=True),
Column('entity_id', Integer, index=True),
Column('entity_type', String(32)),
Column('user_id', Integer, ForeignKey('user.id')))
При создании нового лайка entity_type
присваивается *1007*, чтобы отразить тип понравившегося элемента.
Однако я знаю, что это далеко от хорошей практики. Как мне реализовать лайки и как должна выглядеть моя схема базы данных, чтобы сделать ее более SQLAlchemish?