我正在尝试在 Django 中创建一个通知系统。有一个notification_type 字段、user_id 和不同表(如评论、关系表)的外键会更好吗?
或者除了它们都有一个 user_id 字段之外,它们还应该为每种类型的通知(如“LikeNotification”、“CommentNotification”等)都有一个单独的表吗?
设计一:
class LikeNotification(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class CommentNotification(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class PostNotification(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class BondNotification(models.Model):
bond = models.ForeignKey(Bond, on_delete=models.CASCADE,)
user = models.ForeignKey(User, on_delete=models.CASCADE)
设计二:
class Notification(models.Model):
notification_type = models.IntegerField()
user = models.ForeignKey(User, on_delete=models.CASCADE)
like = models.ForeignKey(Like, on_delete=models.CASCADE)
comment = models.ForeignKey(Comment, on_delete=models.CASCADE)
bond = models.ForeignKey(Bond, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE)