gpt4 book ai didi

python - 如何创建连接到客户 mysql 的收藏夹表

转载 作者:行者123 更新时间:2023-11-29 11:39:36 26 4
gpt4 key购买 nike

我正在尝试在 mysql 中实现一个收藏夹表,该表允许用户通过 id 号将餐厅对象添加到表中。这是基本轮廓:有些客户包含唯一的 ID 和其他内容。还有一些餐厅包含唯一的 ID 和其他内容。我希望顾客能够有自己喜欢的。我制作了一个包含客户 ID 的收藏夹表 - 这是我查找客户收藏夹的方式 - 但随后我必须对一组可以存储唯一餐厅 ID 的列进行硬编码。

将列动态添加到收藏夹数据库有意义吗?

最佳答案

没有。这是一个多对多的关系,通常的实现方法是通过像这样的连接表:

users
+----+------+
| id | name |
+----+------+
| 1 | John |
| 2 | Jill |
+----+------+

restaurants
+----+------------+
| id | name |
+----+------------+
| 1 | McDonald's |
| 2 | Subway |
| 3 | Chipotle |
+----+------------+

favorites
+---------+---------------+
| user_id | restaurant_id |
+---------+---------------+
| 1 | 2 |
| 1 | 3 |
| 2 | 3 |
+---------+---------------+

favorites 表中的每一行都是一个“用户最喜欢的餐厅”关系。在这种情况下,没有人喜欢麦当劳,约翰喜欢赛百味,约翰和吉尔都喜欢Chipotle。

SQLAlchemy 对此模式提供了出色的支持:

class Favorite(Base):
__tablename__ = "favorites"
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
restaurant_id = Column(Integer, ForeignKey("restaurants.id"), primary_key=True)

class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
...
favorites = relationship("Restaurant", secondary=Favorite.__table__)

class Restaurant(Base):
__tablename__ = "restaurants"
id = Column(Integer, primary_key=True)
...

关于python - 如何创建连接到客户 mysql 的收藏夹表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36043189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com