2015-07-10 67 views
0

我有一个评论表,它可以在项目的很多部分非常有用,例如,不仅在照片中。有没有办法实现一个通用评论模型/表,可以处理应该显示评论的地方?在Laravel 5中创建通用评论模型

这是一个好主意,或者我应该分开网站的每个区域的评论?像comments_photoscomments_songscomnents_videos,等等?

谢谢。

+5

这正是你正在寻找http://laravel.com/docs/5.0/eloquent#many-to-many-polymorphic-relations –

+0

@pinkalvansia我读了我的问题的答案,并开始思考它。也许在一张桌子上存储很多评论并不是最好的主意。不管怎么说,还是要谢谢你! – juniorgarcia

回答

1

总之是的,你可以创建通用评论作为@pinkal vansia提到使用多态关系。

但在我看来,我不会将所有评论都存储在一张表中。其中一个原因是性能。如果你要有很多评论,每行都有自己的类型。这样的表格会导致更大的表格大小,并且需要额外的索引才能表现良好。

另外你应该记住,Laravel的ORM并不总是满足需求。然后你必须编写手动SQL,这将变得更加复杂。

而我反对的主要原因是因为只有几个角落的情况下,你需要使用系统中的所有评论而不是单一类型。因此,您每次使用它时都需要检查正确的评论类型。所以在我看来,它没有很好的理由就打破了KISS的原则。

+0

我看到你的观点@insanebits。那么我会保持KISS原则。谢谢您的帮助! – juniorgarcia