我正在为家庭护理公司开发一个PHP应用程序.他们每周安排x个护理人员参加x个服务用户(客户)的住宿.每个服务用户都有一个"访问时间"的集合"时间表",其中包括时段加上访问持续时间(以分钟为单位).
例如,服务用户可以具有以下计划.
AM Lunch Tea Late Night Respite
Mon 30m - 30m 60m - -
Tue 30m - - 60m - -
Wed 20m 25m 30m 60m 120m -
Thu - - 30m - - -
Fri 30m 25m - - - -
Sat - - - - - -
Sun 20m 25m - - - -
Run Code Online (Sandbox Code Playgroud)
这些期间当前以以下格式存储在数据库中:
Table: Service_user_schedules
id service_user_id day period duration
Run Code Online (Sandbox Code Playgroud)
护理人员每周都会填写一份表格,列出他们可以工作的时间.然后将此数据输入系统并以下列格式存储在数据库中:
Table: Carer_available_shifts
id carer_id day period
Run Code Online (Sandbox Code Playgroud)
现在问题是,我需要创建一个控制器来获取这些数据,并根据他们提供的可用性自动将护理者分配给服务用户.这需要是可编辑的,以便在没有人可用于特定护理者的情况下,用户可以选择一个不可用的,并且它们仍将被添加到数据库中.
目前,我有一堆乱七八糟的循环,函数和回声来检查护理人员是否可用于特定服务用户并使其可编辑.
有没有人之前执行过这种任务,如果有的话,你找到了一种简单的方法来完成它.我宁愿让它面向对象,所以我可以重用相同的泛型类,但此刻,我完全失去了!
编辑:我现在已经为这个问题增加了一笔赏金.我目前正在研究遗传算法(我从来没有听说过,更不用说了!)作为基于一些答案的这个问题的解决方案.我想知道你们是否有人使用其他方法来解决这类问题,或者你们是否使用过遗传算法,你能否就如何将它们应用于这一特定问题提供一般性的解释.
我认为这个障碍在许多"人员配备"类型的应用程序中相当普遍,并且对网上任何地方的讨论很少感到惊讶!
UPDATE
对于这个特定的项目,我想我最终可能会使用Tak所描述的数据库方法,但如果我有更多的开发时间,将来可能转换为使用GA.
我现在对于将赏金奖励给谁感到有点失落.duedl0r在他(或她)的回答中付出了很多努力.它让我对遗传算法的世界有了深刻的了解 …
我正在为客户端整理Facebook标签应用程序,该应用程序从Facebook页面获取和显示帖子.该应用程序还提供了向页面添加新帖子和评论现有帖子的功能.这是使用Facebook Graph API(通过PHP SDK)实现的.
我有一切正常,但遇到了涉及从我的应用程序发布的问题.当用户提交帖子时,会通过以下请求将其发送到Graph API.
$facebook->api([PAGE_ID]/feed', 'POST', array(
'message' => [MESSAGE]
));
Run Code Online (Sandbox Code Playgroud)
此请求成功,帖子显示在相关的Facebook页面上,其下方有"通过我的应用名称".
当我通过API请求页面上的帖子列表(请求如下)时,上述帖子不会出现.
$posts = $facebook->api([PAGE_ID].'/feed');
Run Code Online (Sandbox Code Playgroud)
我有一种强烈的感觉,这是因为帖子来自第三方应用程序.我听说Facebook"降级"第三方帖子以鼓励使用自己的平台.所有直接通过Facebook发布的帖子都会出现.
但是,必须有一种方法来检索这类帖子.
Fisch更新如下
当我将帖子发布到API时,会返回以下帖子ID:
112706495458566_468411663221379
Run Code Online (Sandbox Code Playgroud)
但是,当我为它发出API请求时:
$facebook->api('112706495458566_468411663221379');
Run Code Online (Sandbox Code Playgroud)
我收到以下回复:
{
"error": {
"message": "Unsupported get request.",
"type": "GraphMethodException",
"code": 100
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我发出相同的请求但是已经包含在/ feed请求中的帖子的ID时.
$facebook->api('112706495458566_457890310940181');
Run Code Online (Sandbox Code Playgroud)
我收到以下回复.
{
"id": "112706495458566_457890310940181",
"from": {
"category": "Local business",
"name": "Genting Casino Southport",
"id": "112706495458566"
},
"story": "\"Very well done to ste,...\" on their own status.",
"privacy": {
"value": ""
},
"type": "status",
"application": {
"name": "Mobile",
"id": …Run Code Online (Sandbox Code Playgroud) 从gem使用安装Jekyll时gem install jekyll,我收到以下构建错误.我在Windows 7上使用Cygwin,并posix-spawn在安装之前从源代码构建了gem.
Building native extensions. This could take a while...
ERROR: Error installing jekyll-1.1.2.gem:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe extconf.rb
creating Makefile
make
gcc -I. -I/usr/include/ruby-1.9.1/x86_64-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -ggdb -O2 -pipe -fno-strict-aliasing -o porter.o -c porter.c
gcc -I. -I/usr/include/ruby-1.9.1/x86_64-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -ggdb -O2 -pipe -fno-strict-aliasing -o porter_wrap.o -c porter_wrap.c
rm -f stemmer.so
gcc -shared -o stemmer.so porter.o porter_wrap.o -L. -L/usr/lib -L. -Wl,--export-all-symbols -Wl,--enable-auto-image-base,--enable-auto-import -lruby191 -lpthread -lrt -ldl -lcrypt
/usr/lib/gcc/x86_64-pc-cygwin/4.8.1/../../../../x86_64-pc-cygwin/bin/ld: …Run Code Online (Sandbox Code Playgroud) php ×2
codeigniter ×1
cygwin ×1
date ×1
facebook ×1
gem ×1
jekyll ×1
ruby ×1
scheduling ×1
time ×1