我正在构建一个订阅功能,用户可以根据单个类别(即“书籍”)注册不同的邮件列表。
在 MySQL 中设计我的表时,我遇到了两个选项:
选项1
/* Table 1 */
Books
Email
/* Table 2 */
Magazines
Email
每个用户可以订阅多个列表。
选项 2
/* Table 1 */
All Categories
Email
Category_ID
/* Table 2 */
Category_ID
Category
我基本上是从所有电子邮件的主表中交叉引用一个类别 ID。在该表中,电子邮件可能会重复,因为用户可以订阅多个类别。我想我想给每个类别一个 ID,而不是引用数据库中的实际字符串,尽管我在数据库模式设计方面没有经验。
你会去哪个?交叉引用类别 ID 或将每个类别分解到自己的表中是否更快?(假设我通过电子邮件发送一长串列表以在每个类别出现新评论时通知用户)。