Реализация «лайков» в SQLAlchemy - PullRequest
2 голосов
/ 26 августа 2011

Реализация «лайков» во многих приложениях - действительно тривиальная задача. Однако проблема с лайками в приложении, которое я сейчас разрабатываю, заключается в следующем: существует множество сущностей, которые могут быть «любимыми» (например, пост, фотография и т. Д.).

В настоящее время я развернул простой класс 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?

1 Ответ

0 голосов
/ 15 ноября 2011

Взгляните на пример Общие ассоциации от SA.Он делает именно то, что вам нужно.
Код находится в каталоге example установки или может быть просмотрен здесь .
Простейшая реализация criminator_on_association.py это то, что больше всего напоминает ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...