标签: rostering

员工排队算法

我们正在为员工排班系统进行一些研发,我知道有一些建议的算法,如模因算法等,但我在网上找不到任何其他信息.

有没有人知道任何研究期刊,或伪代码那些更好地解释这些算法?

谢谢,德万

algorithm scheduling rostering

9
推荐指数
2
解决办法
8698
查看次数

Openfire联系人列表共享

我在CentOs上安装了openfire,它使用外部数据库进行身份验证和用户列表.

我根据用户表和朋友列表管理组,以便每个用户也是一个管理员组,并填充了(朋友)用户.

外部用户和身份验证工作正常.

问题是,只有在组管理中选中"启用联系人列表组共享openfire"时才会填充好友列表.

我想始终启用此选项,以便用户可以在他们的好友列表中看到对方.

这是一个现存的问题openfire问题

有没有可能的解决方案或替代方案.

编辑:

换句话说,我想避免在ofGroupProp表中添加以下三行:

name    sharedRoster.displayName    groupname

name    sharedRoster.groupList  

name    sharedRoster.showInRoster   onlyGroup
Run Code Online (Sandbox Code Playgroud)

grouping xmpp openfire rostering

8
推荐指数
0
解决办法
1776
查看次数

打击 - 创建名册中的条目

我知道之前已经问过这个问题,但mschonaker 在这里只给出了部分回复.在我的网站上,用户可以将人员添加到他们的名单中,然后伙伴必须接受并最终连接.第一个人(用户a)使用着名的

roster.createEntry(jid, name, groups);

在他的名单中工作并添加一个条目,但后来我对该怎么做有点困惑:

  • 我如何在另一端收到请求?我尝试实现PacketListener,覆盖processPacket()并检查数据包的类型是Presence.Type.subscribe或Presence.Type.subscribed,但它似乎只为用户a触发,但不是应该监听的用户a订阅用户b.

  • 然后,我有另一个函数,可以在登录时查找所有请求,所以如果我再次登录,我会看到请求,但我如何接受它?起初,我认为用户b也应该在他的名单中添加用户a roster.createEntry(jid, name, groups);

但这没有用,也没有发生任何事情.我也试过

Presence subscribed = new Presence(Presence.Type.subscribed);
subscribed.setTo(jid);
xMPPConnection.sendPacket(subscribed);
Run Code Online (Sandbox Code Playgroud)

但也没用.我确信必须有一个好的和简单的方法来做到这一点,但到目前为止我还没有找到它,并且一次尝试一件事给了我太多麻烦.有谁知道这个正确的流程?提前致谢!

xmpp rostering smack

6
推荐指数
1
解决办法
8247
查看次数

Neo4j - 24/7赌场名单

这是一系列新问题,以回应肯尼对我之前关于如何围绕24/7赌场名单建立数据库模型的问题的回答. 在赌场的24/7员工名册的数据库模型

仍然试图了解图表以及如何遍历/连接数据.使用Kenny的答案中图像上半部分的时间图表,每年有12个月的节点,然后指向一行日节点,其中第一天有超过一天的节点,值为1月?我会为每年构建这些子图,还是会使用一个特定的查询来添加一个随时间推移而不存在的节点?我知道有一个查询可以做到这一点,但它需要考虑月节点中的最后一天并创建正确的结束关系?我是否会遇到闰年或夏令时的任何问题?

在答案图像的下半部分是游戏节点,他们只有一个员工和位置关系吗?我不知道如何判断哪个员工被分配到哪个表(没有向关系边添加属性),我应该向边添加属性还是应该为每个对使用单独的节点?

我已经做了一个粗略的图像来显示笔/纸名单的外观,它可能在某种程度上有所帮助. 名单示例

我也试图用一些问题(红色方框)计划出一个图表,它是在插画中完成的并且有点乱,我很想知道Kenny的图形图像是否在特定的应用程序中完成,如果是的话虽然我认为它在视觉上看起来往往会变得纠结和混乱.

图模型概念
您似乎无法单击图像以查找文本可读的直接链接,您可以在此处查看:http://i.imgur.com/FMfJx6G.png

如果有帮助我可以在这里添加问题文本或使用建议的软件重新创建图表.

data-modeling rostering neo4j graph-databases

4
推荐指数
1
解决办法
553
查看次数

在赌场的24/7员工名册的数据库模型

我们目前使用基于笔/纸的名册来管理赌场的桌面游戏工作人员.每行都是一名员工,每列是一个20分钟的时间段,每个单元格代表员工分配到的表,或者他们已被分配到休息时间.员工轮班的开始和结束时间与他们可以处理的游戏/技能不同.我们需要保留7年的名册副本,纸张相当容易,我想开发一个数字应用程序,并且很难将数据存储在数据库中进行存档.

我很擅长使用数据库,我想我理解如何为像neo4j这样的图形数据库建模数据,但是在处理时间时遇到了困难.我试图了解像MySQL这样的RDBMS数据库,下面是我认为数据应该建模的方式.请指出如果我走向错误的方向或者更合适的数据库类型,我们将不胜感激!

基本数据
以下是在我们考虑调度/时间之前要使用的一些基本数据.

员工
- 身份证号码
- 姓名
- 技能(二十一点,百家乐,轮盘等)


- 身份证号码
- 技能/类型(只能是一项技能)

将名册数据存储为像JSON这样的文件可能更好吗?时间敏感数据不会是一个问题.使用数据库进行数字化的好处是查询,这些可以帮助协助人为错误很常见的耗时任务.

可能的查询
注意:轮班的工作人员要么在休息时间要么在场上(分配到桌子上),技能根据难度来学习有主要或次要类型.

  • 80分钟以上的工作人员在场?(他们应该休息一下)
  • 我可以根据他们的技能分配哪些开放表格?
  • 我需要一名具有百家乐技能但尚未被分配到百家乐桌的员工.
  • 在这段时间里,这张桌子上有哪些员工?
  • 这个员工现在在哪里?
  • 谁现在正在轮班?
  • 轮班的工作人员可以处理二十一点?
  • 有多少员工有3项主要技能?
  • 哪些员工至少有3个月的百家乐技能?

这些查询也可以按字母顺序或时间,技能等进行排序.

我很确定我知道如何使用cypher为neo4j执行这些查询,前提是我正确地建模数据.我不熟悉SQL查询,我读过它可能会有点复杂,具体取决于查询和结构.

-------------------------------------------------- --------------------------------------

MYSQL具体

员工表可以包含其ID号和名称等属性,但我是否正确,对于他们的技能和班次,这些将是通过唯一整数引用员工的单独表(我认为这称为外键?).

另一个表可以存储游戏表,这些表将具有它们自己的ID并且引用具有外键的技能/游戏类型.

要记录笔/纸名册等数据,每天都可以有一个表格,其中列从0000开始增加20,一直到2340?在时间列之前,我可以为员工提供一个用其外键表示的员工,时间列将具有指定游戏表的外键,行数据必然包含许多未填充的单元格员工轮班不会是24/7.如果我使用外键来引用游戏桌,那么当员工休息时,我现在遇到了问题?除非我对待说第一个游戏桌入口作为休息?

我可能需要进一步复杂化,管理层会随着时间的推移尝试不同的游戏桌面布局,一些游戏桌可以从说到二十一点转换为百家乐.这肯定会在7年多的时间内发生,我是想创建新的游戏表条目还是添加一列来使用外键并参考一个新的表来存储游戏类型在一段时间内的历史记录?员工也将学习在他们的职业生涯中处理新游戏,很少他们可能也会删除技能.

-------------------------------------------------- --------------------------------------

Neo4j具体

有了这个数据,我会有一个Employee和一个表节点,它们有"isA"关系边缘映射到实际的员工或表吗?我想象两种类型的技能我最好用Skill节点建立关系吗?:Blackjack-> isA-> Skill,Employee-> hasSkill-> Blackjack,Table-> typeIs-> Blackjack?

TIME
当我希望这个数据库现在可以使用时间轴时,我觉得很困难.我遇到了以下有关时间连接节点的建议:

  • Unix Epoch似乎是一个常见的推荐?
  • 将节点连接到年/月/日图表?
  • Lucene时间表?(我不太了解这个或如何使用它,已经看到一些提到它)

以及时间和数据如何相关的一些案例:

  • 工作人员每周都有不同的日期和开始/结束时间,这可能是属性{shiftStart,shiftEnd,actualStart,actualEnd}的班次节点,工作人员可能会迟到或在轮班期间生病.这是将每个班次与员工联系起来的正确方法吗?雇员(节点) - >移(groupNode) - >移(节点)

  • 表格和工作人员可能会修改技能数据,存档数据可能是一个问题,我认为解决方案是在与技能的关系上有时间属性?

  • 我们全天打开和关闭表格,每个表格每天都有开放/关闭时间,这可能会在一个月内根据管理层的需要而变化,此外时间也不严格,由于各种原因,经理可能会打开或关闭表格在转变期间.表节点的打开/关闭状态可能只与轮班期间的查询相关,这让我感到困惑,因为我想要查询但是随着时间的推移存档它可能没有意义?

我在查询时无法确定何时使用节点或向节点添加属性.对于一个员工,他们有一个姓名和身份证号码,如果我想通过他们的身份证号码找到一个员工,那么将它作为自己的节点更好吗?它会更直接,而不是通过所有员工获取该唯一ID号.

我最近也遇到过标签,我可以理解这些对于键入员工和表节点而不是将它们分组到节点下是有用的.随着员工的轮班,我认为应该继续与轮班节点分组,如果我要为在一段时间内轮班工作的员工进行密码查询,则标签可能是适当的,但是应该将其应用于各个班次节点或者转移链接回员工的组节点?我可能需要为各个移位节点或与移位组节点的关系添加属性?我不确定是否应该有一个移位组节点,我假设减少连接到员工节点的边缘对查询来说是最佳的.

-------------------------------------------------- --------------------------------------

如果有任何很好的资源我可以了解数据库开发是否很好,那里有太多的信息和选项,很难知道从什么开始.谢谢你的时间 :)

mysql sql database rostering neo4j

1
推荐指数
1
解决办法
1930
查看次数