我正在尝试实现类似于 Facebook 的行为(好吧,最类似于 YouTube)。
在我的表我有不同Products
,每个Product
可以喜欢或不喜欢的一个Customer
。我不想让用户评价(假设在 1 到 5 星之间),所以简单的喜欢或不喜欢就足够了。
代表它的最佳方式是什么?
我考虑了三个基本表格(在 旁边Customers
):
Products
(身份证,姓名,...)
ProductLikes
(Id、CustomerId、ProductId、CreatedOn)
ProductDislikes
(Id、CustomerId、ProductId、CreatedOn)
但这意味着有两个数据几乎完全相同的表。
另一个想法是具有以下内容:
Products
(身份证,姓名,...)
ProductLikes
(Id、CustomerId、ProductId、IsLike、CreatedOn)
但这意味着我以后不能提供第三种状态,如果我决定这样做的话。
我的最后一个想法:
Products
(身份证,姓名,...)
ProductRatings
(Id、ProductId、CustomerId、评级、CreatedOn)
其中“喜欢”的评分为 5.0,“不喜欢”的评分为 1.0。
我会在你的第二个和第三个选项之间选择一个变体:
Products (Id, Name, ...)
ProductVotes (Id, CustomerId, ProductId, Vote, CreatedOn)
Run Code Online (Sandbox Code Playgroud)
该列Vote
应被限制为仅允许值Like
,Dislike
或者,如果您愿意,1
并且-1
- 后者具有更简单的可能性来执行sum()
喜欢和不喜欢的操作以获得整体投票。
归档时间: |
|
查看次数: |
2750 次 |
最近记录: |