我写了一个非常简单的论坛来集成到一个网络应用程序中,因为我正在努力寻找一个轻量级和快速的论坛,它允许我使用我自己的身份验证方法来决定谁是或不是有效用户以及哪些适合我的应用程序主题。用户要求订阅线程的能力,以便他们收到回复通知 - 这样做的最佳方式是什么?
我可以创建一个线程订阅表并在每次有人订阅时输入一个新行 - 这可能涉及在每个帖子和回复中查找大量繁忙线程,但只需一个简单的插入就可以很快找到新订阅。
我想到的另一个选择是每个线程有一行,并有一个字段,我可以在其中添加(或读取)每个线程的数组,其中包含所有订阅的用户 ID。由于数据库调用更少(即,当做出新的回复时,只需要一个数据库调用来获取所有用户 ID),这让我觉得阅读速度更快,但我认为添加新订阅者时插入可能会更慢因为我必须找到线程的行,获取现有数组,然后将用户 ID 添加到现有数组。
最后一个选项,与第二个选项非常相似,是有一个用户订阅表,其中每一行都是一个用户 ID,然后有一个订阅线程数组。
哪个是最好的方法?目前,我唯一的要求是向用户发送新帖子和回复的电子邮件,但将来我可能希望将其扩展为包括用户列出他们订阅的线程等的能力,就像许多主流论坛所做的那样。