问题标签 [composite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
14784 浏览

sql - 复合主键

我正在设计一个数据库,该数据库将用于存储来自多个不同来源的数据。我存储的实例由原始来源分配了唯一的 ID。我存储的每个实例都应包含有关它来自的源的信息,以及与该源关联的 ID。

例如,考虑下表说明了该问题:

请注意,虽然id_on_source每个来源都是唯一的,但id_on_source对于不同的来源,可能会找到相同的。

我对关系数据库有相当的了解,但远非专家甚至经验丰富的用户。我在这个设计中面临的问题是我应该使用什么作为主键。数据似乎决定使用(source_id, id_on_source). 经过一番谷歌搜索后,我发现了一些关于复合主键优缺点的激烈争论,这让我有点困惑。

该表将与其他表具有一对多的关系,因此将在其他表的外键中引用。

我没有绑定到一个特定的RDBMS,我不确定它是否对争论很重要,但是假设我更喜欢使用SQLiteand MySQL

在这种情况下使用复合外键有什么优缺点?你更喜欢哪个?

0 投票
3 回答
9153 浏览

wpf - 如何在 Composite WPF 中将按键与 DelegateCommand 相关联?

我正在使用 CAL/Prism 构建一个复合应用程序。主要区域是一个选项卡控件,其中包含多种类型的视图。每个视图都有一个可以处理的自定义命令集,这些命令绑定到窗口顶部的工具栏按钮。我之前在非 CAL 应用程序中通过简单地在命令上设置 InputBinding 来完成此操作,但我无法在 CAL 模块的源代码中找到任何此类机制。

我的问题是,将击键连接到我的视图的最佳方法是什么,以便当用户按下Alt+T时,相关的 DelegateCommand 对象会处理它?连接快捷方式不会那么困难......

0 投票
1 回答
1013 浏览

django - django - 在父级中显示多个子表单

我一直在研究模态表单和内联表单集,但无法将我的头包裹在我的复合对象上,并想看看在 django 世界中是如何完成的-

我有这个分层模型
“作者”有很多“书”
每个“书”4 个部分-> 第 01 节、第 02 节、第 03 节和第 04 节
每个“节”都有许多属性

想单独显示所有书籍如果单击一本书,我将展开一个隐藏的 DIV,它将显示该书的 4 个部分。像这样 -
Book-1 | 书的简短描述(单击时显示以下部分)
Section-01 | 第02节| 第04节| 第04节|
书2 | 书的简短描述(单击时显示以下部分)
Section-01 | 第02节| 第 04 节 |...
...
..
.

我已经弄清楚了所有的 HTML 代码,使用 jquery 来显示/隐藏 Div。

问题 - 我很困惑如何将所有这些数据从视图传递到 HTML 页面,然后进行渲染,以便当用户编辑某些内容时,这些内容会以 Forms 的形式传回。

但是有没有办法一次性传递整个复合对象 - Author+Books+AllSectionsInBook。

如果你能指出一个方向或者你是如何解决这个构图问题的,那就太好了。非常感谢提前!

0 投票
1 回答
3175 浏览

python - python多处理代理

我有两个过程:

第一个过程是manager.py背景开始:


第二个是consumer.py应该使用管理器中定义的注册对象:


在后台运行管理器,而不是消费者我收到错误消息: RuntimeError: maximum recursion depth exceeded,当使用addChild进入消费者时,我可以正确使用setName

方法addChildsetName属于CompositeDict,我想被代理了。

怎么了?

CompositeDict覆盖本机__getattr__ __ 方法并包含在错误消息中。我想,在某种程度上,它没有使用正确的__getattr__方法。如果是这样我怎么能解决这个问题?


详细的错误信息是:

0 投票
3 回答
788 浏览

c++ - 在 C++ 中合并十六进制字符串的最佳方法?[大量编辑]

我有两个带有掩码的十六进制字符串,我想将它们合并为一个字符串值/掩码对。字符串可能有重叠的字节,但在应用掩码之后,没有重叠位应该与该位的值相矛盾,即 value1 = 0x0A mask1 = 0xFE 和 value2 = 0x0B, mask2 = 0x0F 基本上表示生成的合并必须具有上半字节全为 0,下半字节必须为 01011

我已经使用直接 c 完成了这项工作,将字符串转换为字节数组并将 memcpy'ing 转换为缓冲区作为原型。它已经过测试,似乎可以工作。但是,它丑陋且难以阅读,并且不会针对与特定位要求相矛盾的情况抛出异常。我考虑过使用位集,但是还有另一种可能不需要转换开销的方法吗?性能会很好,但并不重要。


编辑:更详细,虽然写这篇文章让我意识到我把一个简单的问题弄得太难了。但是,无论如何,它就在这里。

我得到了大量输入,它们是混合内容文档的二进制搜索。文档被分成页面,页面由 api 提供,一次提供一个页面。每个页面都需要使用提供的搜索词进行搜索。

在请求页面之前,我拥有所有搜索词。输入是表示十六进制数字的字符串(这就是我所说的十六进制字符串)以及一个掩码,用于指示输入十六进制字符串中的重要位。由于我预先获得了所有输入,因此我想改进对返回的每个页面的搜索。我想预处理将这些十六进制字符串合并在一起。为了使问题更有趣,每个字符串在它们必须出现的页面中都有一个可选的偏移量,并且缺少偏移量表示该字符串可以出现在请求的页面中的任何位置。所以,像这样:

如果给定的 Input 对象具有offset_present = false,则忽略分配给 offset 的任何值。如果 offset_present 为 false,那么它显然不能与其他输入合并。

为了使问题更有趣,我想报告一个输出,该输出提供有关所找到内容的信息(找到的 input_id、偏移量在哪里等)。合并一些输入(但不是其他输入)使这变得更加困难。

我曾考虑定义一个 CompositeInput 类,并且正在考虑将底层合并作为一个位集,但进一步阅读有关位集的内容让我意识到这并不是我真正的想法。我的经验不足使我放弃了复合的想法,并开始使用蛮力。当找到输入时,我必须跳过有关其他输入类型的一些详细信息,以及为输出收集的附加信息(例如,页码、段落号)。这是一个示例输出类:

如果我合并 N 个十六进制字符串,我会想要生成其中的 N 个,从而对用户隐藏任何合并细节。

0 投票
2 回答
1027 浏览

javascript - ASP.NET:用于复合控件的 JavaScript 对象组件

我有两个疑问:

1.我想为我的服务器复合控件添加一些客户端支持,但我找不到向他添加 JavaScript 的正确方法。

2.我希望客户端支持的另一个特性是让我的 JavaScript 组件对象通过 $find(id, parent)(Sys.Application 的 findComponent 方法的快捷方式)返回。

谁能帮我?我没有找到有关此的明确信息:|

问候,

罗德里戈·S。

0 投票
2 回答
4433 浏览

c# - WebControl 和 CompositeControl 之间的区别?

我一直在网上寻找一些关于该主题的文章,但我仍然无法弄清楚它们之间的区别。我有下面显示的代码,如果我从 CompositeControl 继承它可以完美地工作,但如果我从 WebControl 继承则不能。(它们都呈现代码,但只有 CompositeControl 处理事件)

因此,当我单击按钮并将控件呈现为 WebControl 时,什么也没有发生。但是,如果我将 WebControl 更改为 CompositeControl,则会打印出文本。为什么?WebControl 和 CompositeControl 有什么区别?

0 投票
4 回答
3479 浏览

design-patterns - 复合模式是 SOLID 吗?

复合模式中的叶子实现了组件接口,包括Add叶子永远不会使用的方法RemoveGetChild这似乎违反了接口隔离原则。

那么 Composite Pattern SOLID的用法是什么?

复合模式链接:http: //www.dofactory.com/Patterns/PatternComposite.aspx

0 投票
1 回答
1046 浏览

c# - C# 复合模式和数据库访问

假设我有一个复合类PharmaProduct(代表制药公司的产品层次结构)和它的数据库表。我想了两种将数据加载到PharmaProduct对象中的方法。

(1) 当一个对象被实例化时,构造整个对象树。对树进行更改并通过对树应用递归循环来保留这些更改(这实际上是 C# 的DataSet工作方式)。

(2) 加载一个节点。仅在以下情况下加载其他节点

或者,

被调用(实际上是直接访问数据库)。对节点进行更改。只保存那个节点。

这种类型的表格可能有一千个条目,具体取决于制药公司生产的物品类型。所以在那种情况下,我认为第一种方法太笨拙(而且还消耗内存)。

如果出现任何复合模式问题,我应该如何实际进行数据库访问?

0 投票
1 回答
655 浏览

java - Java 中等效的复合应用程序框架

只是想知道 Java 中用于创建模块化 GUI 应用程序的相反框架是什么,例如事件聚合等。

我知道 Java 没有一个明确的 GUI 框架,到目前为止我已经看到了 Eclipse RCP 和 Netbeans 平台,但是这些似乎并没有做这些事情。

我是一名 .Net 开发人员,希望过渡到 Java,如果这个问题不完全有意义,请原谅我的无知。