问题列表 - 第9085页

我应该使用复合主键吗?

在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,您就会发现主键冲突.

那么,回到最初的问题,使用复合主键仍然是可以接受的做法吗?如果没有,为什么不呢?

java sql language-agnostic database-design

17
推荐指数
5
解决办法
1万
查看次数

如果我事先不知道宽度是多少,我怎么能把东西放在中心?

我试图将一个段落标记与div中的一些文本居中,但我似乎无法使用margin:0 auto来居中,而无需为段落指定固定宽度.我不想指定固定宽度,因为我将在段落标记中包含动态文本,并且根据文本的大小,它将始终是不同的宽度.

有没有人知道如何将段落标记置于div中,而无需为段落指定固定宽度或不使用表格?

html css center margin

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

SOA样式 - 共享数据

我考虑了一组servives的SOA架构,以支持进出口咨询了,以前我们使用的数据库的集成,每个应用程序挑选出来它从一个共享的MS SQL数据库需要与它等合作业务.我们有各种与怪物数据库集成的应用程序,包括java,.net和microsoft访问,由于一切都是紧密耦合的,因此存在引用完整性.

我对如何支持服务之间的数据共享感到有点困惑.

让我们将产品服务放在批发商每个月提供的产品数据库之上.我们构建了一个域模型,并使用Hibernate或者它来实现数据库的实现,实现明智产品是一个大型对象图,给出了批发商提供的有关产品的信息.

现在假设Review服务,定价服务,送货服务和Stock Service将订阅ProductUpdated,ProductAdded,ProductDeleted.问题是每个服务只需要有关产品的部分或部分信息.运输可能只需要尺寸和重量.定价可能只需要产品ID,批发成本,批量折扣,迄今为止有效的价格.审核可能需要产品ID,产品名称,生产商.

是标准做法只是发布整个产品(适当的非订户特定合同,例如ProductUpdated,以及合适的架构 - 代表所有产品对象图),并让订户将他们需要的任何内容映射到他们的域模型(或者他们做什么他们想要,甚至可能没有域模型)...

或者当我写这篇文章时,我想的可能是:

产品服务发布ProductAdded消息(不包括产品详细信息只是产品ID和时间戳)

定价服务订阅ProductAdded并发布RequestPricingForProduct消息

产品服务发布ResultForPricingForProduct消息

嗯..似乎更好一点......但它的感觉就像我建基于什么其他服务我可以找出什么,他们会需要,也许在未来的XYZ服务需要的东西不同产品的服务合同.我会停在那里,因为我认为它变得越来越清楚,我感到困惑...或许上述方法将起作用,因为我应该揭露一种方式来返回任何应该是公共的正确的.

任何评论或方向都非常感谢.对不起,如果这出现了一半.

soa

7
推荐指数
2
解决办法
1746
查看次数

在会议工作区中,以编程方式从列表中获取所有议程项目

我想从定期会议工作区中的特定列表中获取所有项目.我试图执行以下CAML:

<Query>
   <Where>
      <IsNotNull>
         <FieldRef Name='ID' />
      </IsNotNull>
   </Where>
</Query>
Run Code Online (Sandbox Code Playgroud)

但它只显示即将召开的会议的数据.

但是当我打开列表时,从操作菜单中我可以选择显示所有会议的数据.这让我觉得有可能.我知道我可以将列表转换为系列项目,以便它们出现在所有会议中,但这不是我想要的.

sharepoint moss wss

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

在Ruby中,我应该使用|| =还是定义?记忆?

我应该用吗? 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透明地提供这种行为的宏.是这样的吗?

ruby ruby-on-rails memoization

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

DataSet.WriteXml为字符串

我想在使用GetXml的情况下从DataSet中获取字符串.我正在使用WriteXml.如何使用它来获取字符串?谢谢

.net c# dataset

37
推荐指数
2
解决办法
5万
查看次数

MVVM是否违反DRY?

似乎我制作的ViewModels看起来像其他类一样可疑,它们似乎需要大量的代码重复,例如在我当前的项目中:

  • SmartForm:表示要填充的数据表单的模型,具有以下属性:
    • IDCODE
    • 标题
    • 描述
    • SmartFormFields的集合
    • 等等
  • SmartFormControlView 视图
  • SmartFormControlViewModel ViewModel
    • IDCODE
    • 标题
    • 描述
    • SmartFormFields的集合
    • 等等

因此,我的ViewModel与我的模型基本相同,只是具有与View绑定的所有OnPropertyChanged功能.

似乎我重构并扩展了我对模型所做的每一点改变,我必须对 ViewModel 进行镜像更改.

这似乎违反了模式的基本规则不要重复自己.

我是否错误地实现了MVVM模式,或者它只是MVVM的固有特性,模型和ViewModel之间始终存在一对一的重复?

wpf design-patterns mvvm

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

1.265*10000 = 126499.99999999999?

当我将1.265乘以10000时,使用Javascript时得到126499.99999999999.

为什么会这样?

javascript floating-point floating-accuracy

6
推荐指数
3
解决办法
1393
查看次数

如何从字符串初始化char数组

我想做以下事情

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)

c

15
推荐指数
3
解决办法
10万
查看次数

如何实现if-else

如何在erlang中实现这个if-else表达式?

 if(a == b) {
   expression1
 } else {
   expression2 
 }
Run Code Online (Sandbox Code Playgroud)

erlang if-statement

22
推荐指数
4
解决办法
2万
查看次数