我的主要任务是在django应用程序中实现喜欢和评论,但我对模型结构和应用程序的整体架构有所顾虑。
我想要实现的目标:
基本上我只有两个模型(例如书和作者),我希望被喜欢,分享和评论。显然,我需要创建相应的表。问题是,如何更好地引用Book和Author行中的每个Like,Share和Comment。
第一个解决方案:首先想到的是在Like
,Share
和Comment
添加相应的ForeignKeys,这将指向Author
和Book
。因此,例如Like
表将采用下一种形式:
|---------|-----------|-----------|
| ID | AUTHOR_ID | BOOK_ID |
ID
的ID为Like
,AUTHOR_ID
和BOOK_ID
为ForeignKeys到Author
和Book
行。
此解决方案的问题在于,如果您想添加“喜欢”更多内容的功能,则需要向Like
表添加新列。我认为这个解决方案很糟糕,因为Like
表可以很快成长。
第二个解决方案:我已阅读this question,其中解决方案建议创建一个父表,该表可以被喜欢,然后从其中继承Book和Author表。
这个解决方案对我来说似乎很好,但现在关注的是Django ORM中的具体继承。在书Two scoops of Django
中,作者建议几乎无处不在。
你能不能请教我一些建议,不管我是否应该选择多元(具体)继承来实现我的目标?或者是另一个更美丽,更干净的解决方案?
由于