【发布时间】:2011-04-05 09:54:08
【问题描述】:
我需要为每个时间表分配频道。可以有与分配给客户的渠道数量一样多的并发事件。即,如果为客户分配了 3 个频道,那么他可以有 3 个并发事件。如果一个频道被分配给一个事件,那么同一个频道不能被分配给另一个属于同一时间的事件,但如果时间不同,同一个频道可以被分配给另一个事件。
频道表
ID Name
1 Name1
2 Name2
3 Name3
事件表
ID EventName StartTime EndTime ChannelID
1 Event1 11:30AM 12PM 1
2 Event2 11:30AM 11:40AM 2
3 Event3 11:40AM 12PM 2
4 Event4 12PM 12:30PM 1 0r 2
5 Event5 11:30AM 12:30PM 3
以上是预期的输出。
我尝试了嵌套 foreachloop 一个用于通道,另一个用于 evets,但无法实现,而且复杂性非常高。如何实现这个逻辑?
伪代码:
for each channel
{
foreach existing events
{
if(sametime && same channel)
{
go for next channel
}
break;
}
assign current channel to new event
}
当我尝试创建第三个事件时失败。
【问题讨论】:
-
请贴出你目前写的代码。人们通常不喜欢只为您编写代码。事实上,这是一个工作描述,而不是一个问题。