我刚刚遇到一个SQL查询,特别是针对Postgres数据库,它使用名为"distinct"的函数.即:
select distinct(pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
Run Code Online (Sandbox Code Playgroud)
请注意,这不是SELECT上的普通DISTINCT限定符 - 至少它不是DISTINCT限定符的常规语法,请注意括号.它显然使用DISTINCT作为函数,或者这可能是一些特殊的语法.
知道这意味着什么吗?
如果我写的话,我试着用它玩一点
select distinct(foo)
from bar
Run Code Online (Sandbox Code Playgroud)
我得到了相同的结果
select distinct foo
from bar
Run Code Online (Sandbox Code Playgroud)
当我将它与同一个选择中的其他字段组合时,我不清楚它到底在做什么.
我在Postgres文档中找不到任何内容.
谢谢你的帮助!
这是一个没有实际意义的问题,因为我不再参与这个项目了,但它仍然让我感到烦恼.我想知道是否有人对未来的参考和一般良好的编程实践有更好的想法.
安全的教科书方法是"基于角色的安全".每个屏幕,报告或其他任务都附加到一个或多个角色; 每个用户都被分配到一个或多个角色; 然后每个用户都可以锻炼与他的角色相匹配的屏幕等等.对?
几年前,我带领一个团队开发了一套管理军事技术手册的系统.每本手册都有一个"技术内容管理员",负责编写或编辑它的人; "库存经理",负责跟踪副本并将其运出; 还有一名"行政经理",负责预算,因此决定了书的修订频率,打印的份数,等等.当然,每本书都有很多人会订购副本并阅读它.(因为这是军队,你必须被授权拿到书,安全许可等等.)我们通常不担心实际的读者,而是关心每个管理图书馆的基地的人,但这并不重要.
所以......这些是明显的"角色",但角色与特定的书有关.一个人可能是A书的技术内容经理,B书的行政经理,以及其他50本书的读者.所以我们不能说用户有"角色".每个用户对每本书都有不同的角色.
除此之外,还有更多例行系统级权限:我们有几个系统管理员有权更新systeem中的任何内容,帮助台人员几乎可以看到任何数据但不能更新等等.
我最终创建了这样的数据库.(为了避免进入我们的一些奇怪的术语,我会在这里改变一些字段和表名,这个想法是一样的.)
人(person_id,名称等)
Technical_Manual(manual_id,title,admin_manager_person_id,stock_manager_person_id,content_manager_person_id等)
Authorized_Reader(manual_id,person_id等)
用户(user_id,admin_role等)
我对这个方案并不满意,因为它意味着安全性分为三个表:technical_manual表,authorized_reader表和用户表.但是......我们能做得更干净吗?有更好的想法吗?
也许对这个问题没有简单的答案,但我想问一问,如果有人(如果不是简单的答案)至少有一个见识的话。
在很多情况下,我都会创建一个循环,遍历数据库表中的许多记录以进行一些更新,并且可以合法地在末尾进行一次大提交,或者在处理它时提交每条记录。即一次提交一个不会造成任何数据完整性问题。
是否有明确的案例说明哪个更好?
让我想到的是,我最近有一个这样的程序,因为它是一个运行时间很长的程序(大约80分钟),所以我从一个大型提交切换为一小段提交,但由于失败而中途失败数据。我解决了问题并重新运行,但是当我可以只处理先前未处理的记录时,它必须从头开始重新开始。
当我进行此更改时,我注意到运行时间大致相同。
我正在尝试查找所有具有指向特定表的外键的表.所以我写了这个:
select t1.TABLE_NAME as pointsfrom, t2.TABLE_NAME as pointsto
from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS r
join INFORMATION_SCHEMA.TABLE_CONSTRAINTS t1 on t1.CONSTRAINT_NAME=r.CONSTRAINT_NAME
join INFORMATION_SCHEMA.TABLE_CONSTRAINTS t2 on t2.CONSTRAINT_NAME=r.UNIQUE_CONSTRAINT_NAME
where t2.table_name = @mytable
Run Code Online (Sandbox Code Playgroud)
对于我正在处理的数据库中的24个外键中的22个,这种工作有90%的时间,或者确切地说.但对于2个FK,unique_constraint_name与table_constraints中的任何名称都不匹配.
名字也有点搞笑.其中一个是"环境指示符",有一个空间.FK指向的字段名为"environment_designator",带有下划线.另一个具有unique_constraint_name"filename is unique",它与我在"from"或"to"表的定义中看到的任何内容都不对应.
是否还有其他地方我应该在unique_constraint_name上寻找匹配?
我试图从Eclipse导出WAR文件.我有一个"动态Web项目".但我需要为其他两个项目创建的类,一个是普通的Java项目,另一个是另一个项目.所以在Build Config中我告诉它添加其他项目,在"Order and Export"页面上,我点击了这些框来导出第二个和第三个项目.在Eclipse中运行良好,显然从其他项目中找到文件没有问题.但是当我导出时,只有第一个项目中的文件包含在WAR文件中.
如何让Eclipse在WAR中包含其他项目的文件?显然只是将它们添加到Build Config并标记为导出是不够的.是否存在问题,因为其他项目之一也是一个Web项目?Eclipse对此不以为然吗?
我认为我可以通过将我需要的文件从其他项目复制到第一个来完成这项工作.但是,每当他们更新时,我都必须知道这已经发生并复制了新版本.这将是一个痛苦,我认为这是Eclipse项目的用途,因此我可以在应用程序之间共享文件.
编辑
让我澄清一下,我不想部署2个WAR.我有一个为一个项目编写的Web应用程序,其中包含一些我想在另一个项目上重用的类.我试图做的只是在"真正的"WAR中挑选几个类.我肯定不想部署2个WAR,因为它可能与原始项目在同一服务器上,我不想覆盖原始项目的现有WAR.
谢谢你的帮助!
VB或C#中"十进制"值的内部格式是什么?
我不知道这对我正在做的任何事都很重要,但这是其中一件很有趣的事情.比如,知道多少位和负数如何存储可能意味着当你看到一个负数出现在你预期的正面时,你可以立刻想到,"啊,有一个溢出",而不是被深深的黑暗奥秘困惑.
我有 Excel 2010。几个月前我写了一些 UDF 并让它们调试和工作。今天我更改了电子表格中的一个值,突然所有 UDF 都显示#NAME?
最终我决定从头开始。我创建了一个只有一个 UDF 的新工作簿。在这里,它的全部内容是:
Function say7() As Integer
say7 = 7
End Function
Run Code Online (Sandbox Code Playgroud)
然后我去了 Sheet1,在 A1 框中输入了“=say7()”。我得到了“#NAME?”。
如果我输入“sa”,下拉菜单会显示“say7”。我可以按 Tab 或 Enter 并填写函数名称。然后它说#NAME?。
我了解 Excel 2010 不再受支持。微软是否采取了一些措施来破坏 UDF?
我的 XLSM 几周前还在工作。事实上,我进行更改的文件是原始电子表格的副本。我回到原来的状态,在一个应该强制重新计算的单元格中更改了一个值,它说#NAME?。我没有改变代码,我没有改变任何设置,什么都没有。我唯一改变的是一个数据值,并且以某种方式使函数名称不再被识别。
更新:几位发帖人指出“say7”不是 Excel 中函数的合法名称,使用此名称会产生 #REF?错误。真的。但我的问题是我得到了一个#NAME?错误,不是#REF?错误。在我尝试创建一个简化的场景时——以确保问题不是函数中的某个错误——我创建了一个新的、故意非常简单的函数,它具有相同的#NAME?错误。是的,我给这个函数起了一个非法的名字,这让我的问题变得混乱。对于造成的混乱,我深表歉意。解释为什么 say7 是无效名称是有趣且有用的信息,但遗憾的是并没有解决我原来的问题。
我想创建一组共享许多常见行为的类.当然在OOP中你认为你自动认为"带有子类的抽象类".但是我希望这些类要做的事情是每个类都有一个静态的类实例列表.该列表应该在类中作为单个类的一种运行.我的意思是每个子类都有一个单例,而不是它们共享一个."Singleton"到那个子类,而不是一个真正的单例.但如果它是静态的,我该如何继承呢?
当然这样的代码不起作用:
public abstract A
{
static List<A> myList;
public static List getList()
{
if (myList==null)
myList=new ArrayList<A>(10);
return myList;
}
public static A getSomethingFromList()
{
List listInstance=getList();
... do stuff with list ...
}
public int getSomethingFromA()
{
... regular code acting against current instance ...
}
}
public class A1 extends A
{
...
}
public class A2 extends A
{
...
}
A1 somethingfromA1List=(A1) A1.getSomethingFromList();
A2 somethingfromA2List=(A2) A2.getSomethingFromList();
Run Code Online (Sandbox Code Playgroud)
每个子类的列表内容都不同,但列表上的所有代码都是相同的.
上面代码的问题是我只有一个列表用于所有子类,我想要一个列表.是的,我可以复制代码来在每个子类中声明静态列表,但是我还必须复制添加到列表中的所有代码并搜索列表等,这相当违背了子类化的目的.
有关如何在不复制代码的情况下执行此操作的任何想法?
更新
为了澄清BlueRaja以及其他人,让我对我正在尝试做的事情稍微具体一点.
我有许多需要类似行为的状态和代码.它们就像枚举一样,我希望每个可能的代码状态都有类型安全的实例,但是它们有多个集合,所以我不能只为它们制作一个枚举.
例如,我有订单状态,它具有按订单,已发货,已收货和某些特殊值的值.我有项目类型,商品与服务的价值.我有股票与定制.等等.
如果这就是它的全部内容我只会为每个人制作一个枚举.但是我还需要其他行为,例如通过文本值查找对象的能力,例如当我们从数据库中读取它时; 建立一个下拉列表,通过文字描述列出所有选择; …
Excel具有"查找"功能,可在行或列中查找指定值,并从另一列返回相应的值.
但是有一个查找返回找到的单元格的引用?我有一个案例,我有一列日期,我想在列表中搜索给定的日期,然后返回该单元格的引用 - A23或其他 - .
我有一个网页,其中的表单位于页面中央。很简单:形式是“margin: 0px auto”。
现在客户说他们想要在其后面放一张图片,并且表格向左倾斜,大约 1/3 的可用空间在左侧,2/3 在右侧。
我无法对像素数进行硬编码,因为我不知道屏幕的宽度,而且我只知道表单的宽度。该表单目前具有“宽度:100%;最大宽度:920px;” 我可能必须更改它,以便至少部分表格会显示在两侧。
但是好吧,我可以将边距“自动”居中,但是如何“偏离中心”呢?有没有办法说把 1/3 的可用空间放在左边,2/3 放在右边?我不知道该怎么说。