我想在mysql中存储心愿单的书籍ID列表;这是相关表格的样子:
User_Wishlists
user_id,list_title,list_id(PK)
收藏
list_id(FK),book_id(PK)
问题在于book_ID。大多数用户的列表上都会有多本书,但是表中的book1_id,book2_id等代表它们似乎很奇怪。有没有更好的方法在mysql中存储这些book_ID的列表?我需要能够检索并显示用户的愿望清单。
答案 0 :(得分:7)
您需要有一个将用户加入愿望清单的关联表。记住数据库设计的零,一或N原则。要么你没有关系,要么一对一,要么一对一。使用诸如book1_id
之类的东西几乎总是有缺陷的设计。
您可能会发现这是一个更好的结构:
Wishlist
wishlist_id, user_id, ...
WishlistEntry
wishlist_id, book_id, ...
直接将心愿单与用户关联,然后使用WishlistEnry表查找哪些书籍在哪个愿望清单上。