问题标签 [database-relations]

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 投票
2 回答
696 浏览

java - 如何动态获取 Hibernate 对象关系?

我正在使用 Hibernate,我需要找到一种在运行时动态检索对象关系的方法。我在 API 中找不到这个。

谁能指出我正确的方向?

0 投票
1 回答
224 浏览

mysql - 组件及其子零件(关系)的库存管理

我必须跟踪单个零件和套件(组件)的库存,但找不到令人满意的方法。伪造和超简化数据库示例:

prodPrice:它是根据成本计算的,但不是以线性方式计算的。在此示例中,对于 500 或更少的成本,加价为 200%。对于 500-1000 的成本,加价为 150%。对于 1000+ 的成本,加价是 130% 这就是为什么时间旅行套件比单个零件便宜得多的原因

prodStock:这是我的问题。我可以出售套件或单个零件,因此套件的库存是虚拟的。

我购买时的问题:一些供应商向我出售整个 Time Travel 套件(带有一个条形码),而有些供应商向我出售单个零件(带有不同的条形码)所以当我加载库存时,我不知道如何估算它.

出售时的问题:如果我只出售套件,计算库存会很容易:“我有 3 个 Flux 电容器和 2 个 Mr Fusion,所以我有 2 个 Time travel 套件和一个 Flux 电容器”但我可以出售套件或单个零件. 因此,我必须同时跟踪单个零件和可能的套件的库存(并且我必须补偿售价)

可能这真的很简单,但我看不到一个简单的解决方案。恢复:我必须找到一种跟踪库存的方法,而数据库/程序是必须这样做的(我不能要求店员更正库存)

我正在使用 php+MySql。但这更像是一个逻辑问题而不是编程问题

更新:可悲的是,Eagle 的解决方案不起作用。

  • 关系可以并且是递归的(一个工具包使用另一个工具包)
  • 有些套件确实使用了多个相同的部件(2 个磁通电容器 + 1 个 Mr Fusion)
  • 我真的需要为套件的库存存储一个价值。相同的数据库用于用户想要购买零件的网页。我应该展示可用的库存(否则他们甚至不会尝试购买)。并且无法计算网页上每个用户搜索的库存

但我喜欢将股票标记为虚拟的布尔值的想法

0 投票
5 回答
2253 浏览

c# - C# (WPF):数据库关系查看器

我想在C#中创建一个WPF应用程序,它可以以用户界面友好的方式直观地显示从应用程序用户(MS SQL Server、MS Access、Oracle、MySQL 等)选择的数据库中的表之间的关系和允许编辑关系。

例如,在 Microsoft Access 2007 中,可以通过至少拥有 2 个表并单击“数据库工具”选项卡,然后单击“关系”来执行此操作。另一个示例是在 Microsoft SQL Server 中创建数据库图表时。

第一步是创建一个数据访问层以允许连接到不同类型的数据库(取决于提供者类型)。

我不知道 .NET 中是否已经有某种查看器(或者可能是免费的第三方库)可以解决问题。你认识一个吗?如果不是,使用 WPF 手动执行此操作的主要方法是什么?

感谢您的任何帮助和建议!

0 投票
2 回答
55067 浏览

mysql - 如何将自动递增的主键也用作外键?

这就是我想要做的:

我有2张桌子...

然后是一个约束:

如您所见,父表有一个自动递增的主键“id”,它也被用作子表的外键。

现在我想在父表中插入一条记录,如下所示:

它失败并出现错误:

无法添加或更新子行:外键约束失败 ( myschema. parent, CONSTRAINT parent_ibfk_1FOREIGN KEY ( id) REFERENCES child( parent_id))

我知道它失败了,因为它没有在子表中找到引用的记录。如果我首先在子表中创建一条记录,将它的 parent_id 设置为 1,然后重置父表的自动增量计数器(以便下一个插入将具有 id = 1),它可以工作!但这不是解决方案。

如果子表中没有相关行,我看不到插入阻塞的实用程序......

我只是想建立一个一对多的关系......

(我知道我可以使用 JOIN,但我正在尝试使用表关系、数据完整性以及 PHP 的元数据)

0 投票
3 回答
3630 浏览

mysql - mysql多对多关系

一直在阅读教程How to handle a Many-to-Many relationship with PHP and MySQL

在这个问题中,我参考了“数据库模式”部分,其中规定了以下规则:

必须构造此新表以允许以下内容:

现在到现在都一清二楚了。

我遇到的唯一问题是第三条规则(“对于任何组合,它必须允许不超过一行存在”)。
我也希望应用它,但它似乎并没有以这种方式工作。

在我的 mysql (5.XX) 测试实例上,我可以添加反映相同关系的两行!

例如,如果我建立这种关系(通过添加一行):
A 到 B
它也允许我建立这种关系:
B 到 A

所以问题实际上是两个问题:

1)我如何执行不允许执行上述操作的第三条规则?无论组合如何,都只有一个唯一关系。

2) 当我想搜索“A”的所有关系时,SQL 查询会是什么样子

注意#1:基本上我的最终目标是创建一个“友谊”系统,据我了解,解决方案是多对多表。如果可能,建议其他方式。

注意#2:用户表与关系(称为友谊)位于不同的数据库中。因此我不能使用外键。

0 投票
3 回答
171 浏览

database-design - 数据库设计 - 映射关系的疑问

我在设计数据库时感到困惑。

它是一个基于订阅的应用程序:

一个订阅可以有多个显示设备。

订阅时,将要求用户选择显示的设备之一。

记住这一点,我想出了这样的:

替代文字

上述方法是否正确?

USER_SUBNS.DISP_DEV_CD(外键)应该引用 DISPLAY_DEVICES.DISP_DEV_CD 还是 SUBNS_DEVICES.DEV_CD?

0 投票
2 回答
263 浏览

sql - 创建 T-SQL 约束以防止表中出现 x 个重复记录?

table A我有 2 列:

table B我有 2 列:

table A匹配的记录数ItemID不能超过该MaxUsers值。

是否可以编写一个 T-SQL 表约束,以使这种情况在物理上不可能发生?

干杯! 生硬

0 投票
1 回答
947 浏览

database - 如何在 Cakephp 中为同一张表提供 3 个关系

嗨,我是 cake php 新手,无法解决问题。问题是我有一张像这样的桌子;

id varchar(16)

parent_id varchar(16)

文字 文字

user_id bigint(20)

is_deleted_by_user 位(1)

is_deleted_by_us 位 (1)

who_deleted bigint(20)

who_answered bigint(20)

修改日期时间

created_at 日期时间

在这个表中,我想给出用户表和 user_id、who_deleted、who_answered 之间的关系。我的意思是 user_id、who_deleted 和 who_answered 是一个用户 ID。我怎样才能给出用户表和这个表之间的关系?

0 投票
1 回答
475 浏览

sql - ASP MVC 只删除2个表之间的关系(多对多关系)

使用带有活动记录的 ASP MVC。

我有 2 个表,其中的记录有时相关,有时不相关。关系由用户定义。一张桌子有项目,另一张桌子有设备。可以创建和删除项目,设备不能。当用户删除一个项目时,该项目与设备之间的所有关系都应该被删除,但设备应该保留。

我该怎么做呢?

我的删除操作目前如下所示:

0 投票
5 回答
48402 浏览

nosql - 你如何在 NoSQL 中跟踪记录关系?

我试图找出 NoSQL KVP 或文档数据库中的外键和索引的等价物。由于没有关键表(用于添加标记两个对象之间关系的键),我真的很难理解如何以对普通网页有用的方式检索数据。

假设我有一个用户,这个用户在整个网站上留下了很多评论。我能想到的跟踪用户评论的唯一方法是

  1. 将它们嵌入到用户对象中(这似乎没什么用)
  2. 创建并维护一个user_id:comments包含每个评论键 [comment:34, comment:197, etc...] 的列表的值,以便我可以根据需要获取它们。

但是,以第二个示例为例,当您使用它来跟踪其他内容时,您很快就会碰壁积极评论。它也很容易出现竞争条件,因为许多页面可能会同时尝试更新它。

如何在 NoSQL 数据库中跟踪如下关系?

  • 用户的所有评论
  • 所有活跃评论
  • 所有带有[关键字]标签的帖子
  • 俱乐部中的所有学生 - 或学生所在的所有俱乐部

还是我想错了?