问题标签 [cardinality]

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 投票
1 回答
7177 浏览

cardinality - 使用 DIA 绘图程序,如何在关系线上添加基数符号?

我正在使用 DIA v0.97.1 为我的数据库模型绘制带有 UML 表的实体关系图。但是,我尝试并未能找到允许我在这些关系线上添加基数符号(例如 1...n)的开关。Dia有这样的功能吗?还是我必须安装一些插件?谢谢。

0 投票
1 回答
2116 浏览

sql-server - 是否有一种直接的方法可以使用 SMO 确定外键关系的基数?

使用SMO,我试图确定SQL Server 数据库中表之间关系的基数。ForeignKey我可以仔细阅读每个ForeignKeyColumn并查看Column父(可能还引用)中Table的每个,并查看这些列的可空性以及与相关Indexes 的交叉引用以确定基数(每一端的多重性,例如0..1, 1, *),如图所示通过以下实体关系图:

在此处输入图像描述

但是,应该有一个更直接的方法来做到这一点。ForeignKey Properties我在or中没有看到任何相关信息ExtendedProperties。我可以在 MSDN 库中找到的唯一项目是SfcCardinality枚举,其中指出“不要在代码中直接引用此成员。它支持 SQL Server 基础结构。 ”。

是否有通过 SMO获取基数信息的直接方法?

0 投票
1 回答
245 浏览

c# - SQL 数据库、实体数据模型和一对一实体

我对 EDM 很陌生,过去写过很多 ADO.Net 的东西。我有三张桌子:

这些在 MS SQL 2005 中托管的表尚未配置 FK 或约束,它们将具有名义上的 1 对 1 关系。例如,ID 为 1 的 Product 的每一行,Product_MaxLoan 和 Product_MinLoan 中都会有一行 ID 为 1。

在 Visual Studio 2010 中,我想正确设置 EDM,以便将基数设置为 1 到 1。我之前对表和以下设置进行了 FK 约束,但是,这只允许 0..1 基数(我想是为了迎合 Product 可能没有 Product_MaxLoan 或 Product_MinLoan 的事实)。

问题:

  • 对于在 SQL 2005 中设置这些表,您有什么建议?对于 EDM 中的一对一关系,您会设置 FK 吗?
  • 您能否在 SQL 2005 中设置 EDM 在从数据库导入时读取的 PK 关系?
  • 一个产品包含大约 300 个属性,因此在单个表中包含所有这些数据将是糟糕的数据库规范化(因此有许多 1 - 1 个表)。最佳实践是将所有这些属性放入单个 EDM 类中吗?我的直觉反应是将其分解为数据库中的结构(这是我的 ADO 遗产),产品的每个逻辑部分都有一个类。

您的建议将不胜感激。

最好的祝福,

标记

0 投票
4 回答
6249 浏览

sql - PostgreSQL:如何实现最小基数?

正如在这个问题中回答的那样:Cardinality in PostgreSQL,cardinality 是使用constraints强制执行的。

基数规则定义了允许的关系计数——一对多、多对多等。多对多是使用连接表实现的,一对多是使用 FOREIGN KEY 实现的。

但是如何实现一对一或多(一对一+)关系。这与问:如何在 PostgreSQL 中强制执行最小基数相同?

一种实际情况是需要存储必须由个人(例如用户或客户)提供(但可能不止一个)的地址(或电话号码)。

编辑:

上述情况是一般问题的特例(具有基数)。一般问题是:如何强制任意数的基数?

正如jug 所回答的,如果 minimum-cardinality 为 1,则可以使用非空 FOREIGN KEY 引用作为解决方法它还将提供一个附加功能,可以在许多中选择默认值。

但是考虑另一种情况,板球队与其球员之间的关系。每支球队必须至少有 11 名球员才有资格成为一支球队。这里最小基数是十一(11)。

类似地,学校中的课程学生之间的关系,其中每个学生必须注册至少 5 门课程,并且每门课程必须至少有 10 名学生。

0 投票
2 回答
3086 浏览

mysql - 显示表状态的疯狂基数

迭代1:

迭代 2

以上两者之间的上述时间小于5秒。为什么每次调用show index都会有如此大的差异?

这只发生在这张桌子上,我检查了几个更大的桌子,每次访问它们时都显示相同的数字

仅供参考:

几个问题:

  1. 为什么基数变化如此之大,这真的很重要吗?
  2. 优化表有多重要?它会使查询更快吗?
0 投票
2 回答
1656 浏览

entity-framework - 0...1 关联上的实体框架基数问题

我有如下所示的数据库表:

架构图

ATask可以映射到 a Module,或者根本不映射 (0...1)。我首先使用实体​​框架数据库,当我从数据库生成模型时,任务实体与模块一起作为一个集合(0个或更多)出现。所以我打开了我的 EDMX 并将 Task 上的“模块”导航属性更改为 0...1。

EDMX

现在,当我尝试编译时,出现此错误:

错误 3003:从第 1241 行开始映射片段时出现问题:鉴于 Association End Member Task 的基数,它应该映射到表 TaskModule 的关键列。要么修复映射,要么改变这一端的多样性。

我不明白我需要做什么来解决这个问题。我查看了关联详细信息,但看不到问题所在。我知道我可能错过了一些愚蠢的东西,但我完全被困住了。关联属性:

任务模块关联

Visual Studio 2010 SP1、实体框架 4.3.1.0、SQL Server 2008 R2。

0 投票
2 回答
6370 浏览

python - 如何在 Python 中有效地计算超大数据集的基数?

我一直在处理一些非常大的数据集,通常是数十亿个元素,它们都维护在memcached云中并定期转储到文件中,对于我的一项任务,我正在尝试计算基数这一套。

在某些情况下,每个项目都包含一个 IP 和一些其他属性来识别一个人,并以 base64 编码,项目大小为 20 字节。通过删除某些字段来减小项目的大小是不可能的。

这是将我的数据集模拟为内存版本的东西(感谢this post for string generation):

我的第一种方法是使用这样的哈希集:

虽然这在理论上适用于小型数据集,但您可以猜到有一个小问题:

  • 我不能对我的数据的唯一性做出任何假设。我可以拥有 50% 的数据集是唯一的,或者我也可以拥有 100%。这是以固定的时间间隔动态生成的,并且取决于很多因素(例如一天中的时间)
  • 数据集大小为 100 亿。以 base 64 编码的每个项目是 20 个字节,乘以 100 亿是平均几百个千兆字节。不幸的是,我无法访问具有那么多 RAM 的机器!

我已经完成了我的功课,最多只能找到一些研究论文或一些不起眼的图书馆,但这样做的部分目标是了解什么方法有效以及为什么有效。

所以我打电话给你们 Python 用户,你们知道有什么算法可以帮助我有效地估计基数吗?复杂性是指我不太关心运行时间复杂性,但我更关注空间复杂性。如果它极大地提高了性能,我不介意牺牲一点准确性(所以我不一定需要知道唯一性的确切数量,即使这是理想的,但可能不是一种可行的方法)。我会说最多 5% 是可以接受的。我正在为这个项目寻找专门的 Python 内容。

感谢您的任何帮助,您可以提供 !

正如一些人所指出的,我可以使用 Hadoop/MR,但是对于这个特定的项目,我们不想走 MR 方式,而是想探索算法在单台机器上有效地做到这一点,因为这可以应用于其他几个不同的项目。

0 投票
6 回答
118552 浏览

database - 什么是数据库中的基数?

有人可以借助示例向我解释一下数据库中的基数是什么吗?

0 投票
4 回答
275 浏览

c++ - 如何在 C++ 中动态地将大小分配给数组?

所以现在我有一个 C++ 类,叫做 Set。在其中,我有一个名为 mCardinality 的整数和一个名为 mElements 的整数数组。我希望能够在 mCardinality 的构造函数中接受一个整数,然后使用它来为我的整数数组分配一个大小,有没有办法做到这一点,或者我绝对必须马上为它设置一个大小? (我想我可以将大小设为最大整数,然后只使用基数来限制我处理元素的循环,但更简洁的解决方案会更好)。

我确实在这里看到,可能有一种方法可以使用 std::vector 来调整数组的大小,这行得通吗?而且...该代码看起来如何?对于我想做的所有其他事情,向量是否像 C++ 中的数组一样工作?

0 投票
2 回答
674 浏览

oracle10g - 为什么我们需要在 cognos/hibernate 而不是在 oracle 中指定基数

在oracle中指定外键关系时,不需要说关系是1对1、1对多等。但是在cognos框架管理器中指定关系时,为什么要指定1对1、1对许多等?此外,不相关但只是好奇,像 Hibernate 这样的 ORM 工具中的行为也是如此。该规范仅用于优化目的吗?

我的另一个问题是指定错误的基数关系有什么影响?即,我指定了一个 1 对 1 的关系,实际上它是一对多的。我冒的风险是什么?