我目前正在为本地协会开发成员管理,目前我正在开发数据库架构.我想与您分享以改进它并提供其他基于角色的访问模型(RBAC)的示例.我很感激任何建设性的批评,特别是我在表格之间使用的关系.
链接到highres:http://i.stack.imgur.com/WG3Vz.png
继承架构:
这个怎么运作:
我将现有客户端(实际上是关联成员)从外部应用程序映射到我的管理应用程序.(客户表)
该关联在Division,Subdivisions等(intern_structures表)中构建.每个客户都可以成为多个部门,细分,部门等的成员.
每个客户都可以在诸如总裁,精算师,财务主管等会员(分部......)中担任一个或多个角色,并且每个角色都有某些特权,角色的所有者可以在其部门,细分,部门等中应用其他人. .
凭证连接到应用程序的特定操作.凭证的所有者可以对其范围内的其他成员执行此操作.可以有多个"独立"应用程序,但它们都共享相同的身份验证/授权系统.
应用程序在模块/子模块/动作等中构造.示例可以是"个人详细信息"模块,该模块包含一个名为"图片"的子模块,您可以在此图片上应用"查看,删除,编辑"操作.但是你不能删除任何图片,除非你试图删除图片的人在你有足够角色的部门/部门.
内部和应用程序结构都是树,实现为邻接列表和嵌套集.邻接列表确保完整性,嵌套集允许我快速遍历树.
一个例外是您可以直接向某人提供某些凭据(client_credentials).如果某人需要对不属于他的divsion/section的人执行某些操作,则需要这样做.
因此,某人可以成为多个divsions/sections的成员,并在他所属的每个部门/部门中获得多个角色.我将通过他的多个角色合并某人拥有的所有凭据.凭证总是积极的,意味着限制性凭证是不可能的.
我正在尝试使用php准备Excel报告.在报告中,我有一个名为date的列.我正在尝试将日期格式化为date('d-M-Y',strtotime($row['MYDATE']));.
所以我的问题是当它在浏览器上显示时它以正确的格式显示,(10-SEP-2010)但是在excel表上它显示如下(9/10/2010).
为什么会有差异,我该如何解决这个问题?
我有一个简单的红宝石问题.我有一个字符串数组.我想确定该数组是否包含任何字符串的子字符串.举个例子
a = ['cat','dog','elephant']
a.to_s.include?('ele')
Run Code Online (Sandbox Code Playgroud)
这是最好的方法吗?
谢谢.
任何帮助深表感谢.每次:$("#myid").dialog()打开,我的日期选择器也弹出,我甚至没有点击它的输入字段.为什么会这样?tnx提前.
是什么区别defer.execute(),并threads.deferToThread()在扭曲?两者都使用相同的参数 - 一个函数,以及用它调用它的参数 - 并返回一个deferred,它将通过调用函数的结果触发.
该threads版本明确声明它将在一个线程中运行.但是,如果defer版本没有,那么调用它有什么意义呢?在reactor中运行的代码永远不会阻塞,因此它调用的任何函数都不能阻塞.那时,您可以做defer.succeed(f(*args, **kwargs))而不是defer.execute(f, args, kwargs)使用相同的结果.
我遇到表单身份验证问题.当我尝试加载我的Login.aspx页面时,javascript和样式表都不会加载.这是我的web.config文件的一部分
<authentication mode="Forms">
<forms loginUrl="Login.aspx"
timeout="30"
name=".ASPXAUTH"
path="/"
requireSSL="false"
slidingExpiration="true"
defaultUrl="Main.aspx"
cookieless="UseDeviceProfile" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
请帮助我,了解正在发生的事情.
我正在开发一个使用W3C标准地理定位API的应用程序,但我不能在我的生活中让它在我的Windows 7和XP PC上运行Safari.它在我的iPad和iPhone上运行良好.它也适用于Chrome(5,6,7和Canary版本)以及Firefox(3.6).我没有Mac,所以我无法测试它.IE不支持地理位置,因此也涵盖了.
我创建了一个精简版本,我将其托管在Google Apps Engine上,以便您查看代码:http://html5-geolocator.appspot.com/ .所有(简化的)javascript都在html中,因此您应该能够右键单击并调试/查看源代码.
它几乎是Google Map API DevGuide上示例的直接转换.有趣的是,Google托管的示例在Windows 7上的Safari 5.0.x中也无法运行(但它们在所有其他平台上运行正常,与我的应用程序相同),例如http://code.google.com/ apis/maps/documentation/javascript/examples/map-geolocation.html展示与我的APP完全相同的问题,没有地图出现,网页只是保持灰色.
通过一些调试(警告("我在这里"):-)似乎在Safari中,它确实执行了navigator.geolocation.getCurrentPosition(myCallback),但它似乎永远不会到达myCallback ......好像它永远不会从getCurrentPosition返回.我还看到,如果我在一夜之间打开浏览器窗口,当我早上回到它时,会出现警报和地图(虽然并非总是如此).我还尝试添加了一个errorCallback navigator.geolocation.getCurrentPosition(myCallback,errorCallback),但它也从未执行过,再次暗示它永远不会从getCurrentPosition调用返回.
为什么会这样?
编辑:刚做了一些测试,我添加了超时选项(navigator.geolocation.getCurrentPosition(myCallback,errorCallback,{timeout:5000});),实际上它一直在超时,无论我设置多高所以它永远不会从Google地理定位服务返回,但为什么呢?
我有一项任务,并希望在我的脑海中发展我应该如何编程.
我可能会得到一个csv格式数据库,该数据库至少有3600万行数据.将来,用户需要根据多个列值根据某些条件通过CGI/perl接口搜索此"数据库"并显示匹配的行.
我应该如何使用perl读取csv格式(可能使用CPAN中的CSV解析器)并存储到什么类型的数据库中?关键优先级是搜索数据库的速度.
任何样本编码都会受到赞赏
我正在使用ListView + DataPager + ObjectDataSource组合.
在我对ObjectDataSource的SelectMethod的实现中,我想访问PageLoad()事件中设置的全局变量(该方法每页只返回适当数量的项).尽管变量在PageLoad()中初始化,但在SelectMethod中似乎为null.我怎么能改变呢?
<asp:ObjectDataSource ID="ItemsObjectDataSource" runat="server" EnablePaging="True"
SelectMethod="WrapSearchResults" SelectCountMethod="CountSearchResults"
TypeName="Catalogue">
<SelectParameters>
<asp:QueryStringParameter Name="startRowIndex" QueryStringField="page" Type="Int32" DefaultValue="0" />
<asp:Parameter Name="maximumRows" Type="Int32" DefaultValue="10" />
</SelectParameters>
</asp:ObjectDataSource>
Run Code Online (Sandbox Code Playgroud)
SearchOption search;
protected void Page_Load(object sender, EventArgs e)
{
search = new SearchOption(SessionParameters.Get(Session).User);
}
public IEnumerable<ResultWrapper> WrapSearchResults(int startRowIndex, int maximumRows)
{
search.Limit = maximumRows; <-- null pointer exception
}
Run Code Online (Sandbox Code Playgroud)