比较视频的观看时间与来自app的观看时间,以避免在db中重复条目



{
"start":"0",
"end":"5",
},
{
"start":"5",
"end":"25",
},
{
"start":"20"
,"end":"50",
},
{
"start":"60"
,"end":"150",
},
{
"start":"40"
,"end":"60",
},
{
"start":"0",
"end":"10",
},
{
"start":"1",
"end":"2",
},
{
"start":"2",
"end":"3",
},
{
"start":"40"
,"end":"50",
}

这是存储在数据库中的数据,我从应用程序接收有效载荷,有时有重复的条目,如以下请求

[
[
'start' => 0,
'end' => 1
],
[
'start' => 1,
'end' => 2
],
[
'start' => 2,
'end' => 3
],
[
'start' => 4,
'end' => 5
]
]

像上面所有这些条目都覆盖在从0到10开始的间隔中,所以我不希望这些再次插入到数据库中。

我可以告诉你一些你应该遵循的步骤:

  1. 你从所有的"观察"对象的数组,并创建一个新的数组的数组与第一个数组的开始作为这个最小的数组。
  2. 然后将该特定起始点的末尾与所有其他起始点的末尾进行比较,如<=,如果满足,则将末尾替换为其他数组的末尾,一直这样做,直到解决所有重叠。
  3. 从所有数组中计算开始和结束之间的时间差,然后将差异求和。
  4. 用总和计算百分比。

可以保存2的结果。在你的数据库中,如果你需要将它作为用户观看的时间返回给前端。

你可能无法通过这个答案清楚地理解这个逻辑,但是你可以按照这个方法来解决你的问题。

相关内容

  • 没有找到相关文章

最新更新