在Java的JPA(通过EmbeddedId或IdClass注释)中似乎只有第二类支持复合数据库键.当我读到复合键时,无论语言如何,人们都会不断发现,因为它们是一件坏事.但我不明白为什么.这些天使用复合键仍然可以接受吗?如果没有,为什么不呢?
我找到了一个同意我的人:http: //weblogs.sqlteam.com/jeffs/archive/2007/08/23/composite_primary_keys.aspx
但另一个不这样做的人:http: //weblogs.java.net/blog/bleonard/archive/2006/11/using_composite.html
是仅仅是我,还是人们无法区分复合键的适用与否?当表不表示实体时,即当它表示连接表时,我看到复合主键很有用.
一个简单的例子:
Actor { Id, Name, Email }
Movie { Id, Name, Year }
Character { Id, Name }
Role { Actor, Movie, Character }
这里的Actor,Movie和Character显然受益于Id列作为主键.
但是Role是一个多对多连接表.我认为创建一个id只是为了识别数据库中的一行是没有意义的.对我而言,主键显而易见{ Actor, Movie, Character }.它似乎也是一个相当有限的功能,特别是如果连接表中的数据一直在变化,一旦主键序列回绕到0,您就会发现主键冲突.
那么,回到最初的问题,使用复合主键仍然是可以接受的做法吗?如果没有,为什么不呢?
我试图将一个段落标记与div中的一些文本居中,但我似乎无法使用margin:0 auto来居中,而无需为段落指定固定宽度.我不想指定固定宽度,因为我将在段落标记中包含动态文本,并且根据文本的大小,它将始终是不同的宽度.
有没有人知道如何将段落标记置于div中,而无需为段落指定固定宽度或不使用表格?
我考虑了一组servives的SOA架构,以支持进出口咨询了,以前我们使用的数据库的集成,每个应用程序挑选出来它从一个共享的MS SQL数据库需要与它等合作业务.我们有各种与怪物数据库集成的应用程序,包括java,.net和microsoft访问,由于一切都是紧密耦合的,因此存在引用完整性.
我对如何支持服务之间的数据共享感到有点困惑.
让我们将产品服务放在批发商每个月提供的产品数据库之上.我们构建了一个域模型,并使用Hibernate或者它来实现数据库的实现,实现明智产品是一个大型对象图,给出了批发商提供的有关产品的信息.
现在假设Review服务,定价服务,送货服务和Stock Service将订阅ProductUpdated,ProductAdded,ProductDeleted.问题是每个服务只需要有关产品的部分或部分信息.运输可能只需要尺寸和重量.定价可能只需要产品ID,批发成本,批量折扣,迄今为止有效的价格.审核可能需要产品ID,产品名称,生产商.
是标准做法只是发布整个产品(适当的非订户特定合同,例如ProductUpdated,以及合适的架构 - 代表所有产品对象图),并让订户将他们需要的任何内容映射到他们的域模型(或者他们做什么他们想要,甚至可能没有域模型)...
或者当我写这篇文章时,我想的可能是:
产品服务发布ProductAdded消息(不包括产品详细信息只是产品ID和时间戳)
定价服务订阅ProductAdded并发布RequestPricingForProduct消息
产品服务发布ResultForPricingForProduct消息
嗯..似乎更好一点......但它的感觉就像我建基于什么其他服务我可以找出什么,他们会需要,也许在未来的XYZ服务需要的东西不同产品的服务合同.我会停在那里,因为我认为它变得越来越清楚,我感到困惑...或许上述方法将起作用,因为我应该揭露一种方式来返回任何应该是公共的正确的.
任何评论或方向都非常感谢.对不起,如果这出现了一半.
我想从定期会议工作区中的特定列表中获取所有项目.我试图执行以下CAML:
<Query>
<Where>
<IsNotNull>
<FieldRef Name='ID' />
</IsNotNull>
</Where>
</Query>
Run Code Online (Sandbox Code Playgroud)
但它只显示即将召开的会议的数据.
但是当我打开列表时,从操作菜单中我可以选择显示所有会议的数据.这让我觉得有可能.我知道我可以将列表转换为系列项目,以便它们出现在所有会议中,但这不是我想要的.
我应该用吗? if defined?
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
Run Code Online (Sandbox Code Playgroud)
要么 ||=
@current_user_session ||= UserSession.find
Run Code Online (Sandbox Code Playgroud)
我注意到if defined?最近使用的方法越来越多.一个人对另一个人有什么好处吗?就个人而言,我更喜欢||=可读性.我也认为Rails可能有一个memoize透明地提供这种行为的宏.是这样的吗?
我想在不使用GetXml的情况下从DataSet中获取字符串.我正在使用WriteXml.如何使用它来获取字符串?谢谢
似乎我制作的ViewModels看起来像其他类一样可疑,它们似乎需要大量的代码重复,例如在我当前的项目中:
因此,我的ViewModel与我的模型基本相同,只是具有与View绑定的所有OnPropertyChanged功能.
似乎我重构并扩展了我对模型所做的每一点改变,我必须对 ViewModel 进行镜像更改.
这似乎违反了模式的基本规则不要重复自己.
我是否错误地实现了MVVM模式,或者它只是MVVM的固有特性,模型和ViewModel之间始终存在一对一的重复?
当我将1.265乘以10000时,使用Javascript时得到126499.99999999999.
为什么会这样?
我想做以下事情
char a[] = { 'A', 'B', 'C', 'D'};
Run Code Online (Sandbox Code Playgroud)
但我不想单独写这些字符.我想要类似的东西
#define S "ABCD"
char a[] = { S[0], S[1], S[2], S[3] };
Run Code Online (Sandbox Code Playgroud)
但这不会编译(gcc说'初始化元素不是常数').
我尝试用#define替换
const char S[] = "ABCD";
Run Code Online (Sandbox Code Playgroud)
但这似乎没有帮助.
我怎么能这样(或类似的东西)让我把"ABCD"写成普通的'字符串',而不是四个单独的字符?
PS似乎人们没有正确地阅读这个问题......
我无法编译以下代码:
const char S[] = "ABCD";
char t[] = { S[0], S[1], S[2], S[3] };
char u[] = { S[3], S[2], S[1], S[0] };
Run Code Online (Sandbox Code Playgroud) 如何在erlang中实现这个if-else表达式?
if(a == b) {
expression1
} else {
expression2
}
Run Code Online (Sandbox Code Playgroud)