问题标签 [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.
java - 如何动态获取 Hibernate 对象关系?
我正在使用 Hibernate,我需要找到一种在运行时动态检索对象关系的方法。我在 API 中找不到这个。
谁能指出我正确的方向?
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)
- 我真的需要为套件的库存存储一个价值。相同的数据库用于用户想要购买零件的网页。我应该展示可用的库存(否则他们甚至不会尝试购买)。并且无法计算网页上每个用户搜索的库存
但我喜欢将股票标记为虚拟的布尔值的想法
c# - C# (WPF):数据库关系查看器
我想在C#中创建一个WPF应用程序,它可以以用户界面友好的方式直观地显示从应用程序用户(MS SQL Server、MS Access、Oracle、MySQL 等)选择的数据库中的表之间的关系和允许编辑关系。
例如,在 Microsoft Access 2007 中,可以通过至少拥有 2 个表并单击“数据库工具”选项卡,然后单击“关系”来执行此操作。另一个示例是在 Microsoft SQL Server 中创建数据库图表时。
第一步是创建一个数据访问层以允许连接到不同类型的数据库(取决于提供者类型)。
我不知道 .NET 中是否已经有某种查看器(或者可能是免费的第三方库)可以解决问题。你认识一个吗?如果不是,使用 WPF 手动执行此操作的主要方法是什么?
感谢您的任何帮助和建议!
mysql - 如何将自动递增的主键也用作外键?
这就是我想要做的:
我有2张桌子...
然后是一个约束:
如您所见,父表有一个自动递增的主键“id”,它也被用作子表的外键。
现在我想在父表中插入一条记录,如下所示:
它失败并出现错误:
无法添加或更新子行:外键约束失败 (
myschema
.parent
, CONSTRAINTparent_ibfk_1
FOREIGN KEY (id
) REFERENCESchild
(parent_id
))
我知道它失败了,因为它没有在子表中找到引用的记录。如果我首先在子表中创建一条记录,将它的 parent_id 设置为 1,然后重置父表的自动增量计数器(以便下一个插入将具有 id = 1),它可以工作!但这不是解决方案。
如果子表中没有相关行,我看不到插入阻塞的实用程序......
我只是想建立一个一对多的关系......
(我知道我可以使用 JOIN,但我正在尝试使用表关系、数据完整性以及 PHP 的元数据)
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:用户表与关系(称为友谊)表位于不同的数据库中。因此我不能使用外键。
database-design - 数据库设计 - 映射关系的疑问
我在设计数据库时感到困惑。
它是一个基于订阅的应用程序:
一个订阅可以有多个显示设备。
订阅时,将要求用户选择显示的设备之一。
记住这一点,我想出了这样的:
上述方法是否正确?
USER_SUBNS.DISP_DEV_CD(外键)应该引用 DISPLAY_DEVICES.DISP_DEV_CD 还是 SUBNS_DEVICES.DEV_CD?
sql - 创建 T-SQL 约束以防止表中出现 x 个重复记录?
在table A
我有 2 列:
在table B
我有 2 列:
table A
匹配的记录数ItemID
不能超过该MaxUsers
值。
是否可以编写一个 T-SQL 表约束,以使这种情况在物理上不可能发生?
干杯! 生硬
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。我怎样才能给出用户表和这个表之间的关系?
sql - ASP MVC 只删除2个表之间的关系(多对多关系)
使用带有活动记录的 ASP MVC。
我有 2 个表,其中的记录有时相关,有时不相关。关系由用户定义。一张桌子有项目,另一张桌子有设备。可以创建和删除项目,设备不能。当用户删除一个项目时,该项目与设备之间的所有关系都应该被删除,但设备应该保留。
我该怎么做呢?
我的删除操作目前如下所示:
nosql - 你如何在 NoSQL 中跟踪记录关系?
我试图找出 NoSQL KVP 或文档数据库中的外键和索引的等价物。由于没有关键表(用于添加标记两个对象之间关系的键),我真的很难理解如何以对普通网页有用的方式检索数据。
假设我有一个用户,这个用户在整个网站上留下了很多评论。我能想到的跟踪用户评论的唯一方法是
- 将它们嵌入到用户对象中(这似乎没什么用)
- 创建并维护一个
user_id:comments
包含每个评论键 [comment:34, comment:197, etc...] 的列表的值,以便我可以根据需要获取它们。
但是,以第二个示例为例,当您使用它来跟踪其他内容时,您很快就会碰壁积极评论。它也很容易出现竞争条件,因为许多页面可能会同时尝试更新它。
如何在 NoSQL 数据库中跟踪如下关系?
- 用户的所有评论
- 所有活跃评论
- 所有带有[关键字]标签的帖子
- 俱乐部中的所有学生 - 或学生所在的所有俱乐部
还是我想错了?