我正试图在Django创建一个通知系统。通知类型字段、用户ID和不同表(如注释、关系表)的外键是否更好?
或者,除了所有通知都有一个用户ID字段之外,它们还应该为每种通知类型都有一个单独的表,如“相似通知”、“注释通知”等?
设计1:
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)
设计2:
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)