问题标签 [relational]

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 投票
5 回答
997 浏览

database-design - 在多个表之间共享关系的最佳实践

我一直遇到这个设计问题,到目前为止我对我的解决方案并不满意。问题是这样的:

我有两个或多个实体,例如 People 和 Dogs,它们都与 Notes 表有关系,该表存储消息字段和有关消息的一些元数据,例如作者。

1)第一个选项是不强制执行外键。这样,我可以将诸如 peopleId 或 dogId(无论它是什么)之类的 FK 存储在与 fkId 相同的通用 FK 字段中。然后我将 tableId 存储在另一列中——希望从 RDMS 元数据中获取表 id,但你也可能有一个肮脏的 hack 并明确地制作一个充满你必须手动更新的表的表. 这真的很草率,我只是为了完整性而提到它。

2) 为每个需要它的表克隆 Notes 表,例如 PeopleNotes、DogNotes、CatNotes 等。这会产生一个相当大的规范化问题。

其他人在这种情况下做了什么?

0 投票
1 回答
383 浏览

sql-server - 链接到其他表的 SQL Server“对象”/“属性”关系表

抱歉标题不好,我想不出正确的术语。

我有一个表示对象的数据库结构,对象具有类型和属性。

只有某些属性可用于某些类型。

IE

类型 - 房屋、汽车

属性 - 颜色、速度、地址

car 类型的对象可以同时具有颜色和速度属性,但 House 类型的对象只能具有颜色、地址。对象、类型、属性组合的值存储在值表中。

所有这些都有效,关系很好地执行了上述内容。

我的困境是我有另一个表,即地址。此表具有 AddressID。

我想以某种方式将我的地址表加入我的对象值表..有没有一种巧妙的方法来实现这一点?

[更新] - 更多细节

我已经有5张桌子了。IE

目的

特性

对象类型

对象属性值

对象类型属性

这些表具有锁定可以将哪些属性值分配给每种类型的对象的关系。

一个对象的名称可能是“法拉利”,类型是“汽车”,因为类型是汽车,所以我可以为颜色属性设置一个值。

该值虽然是数字,但我希望能够加入颜色代码表以匹配 id。

0 投票
5 回答
6829 浏览

mysql - mysql - 查询三个表

我有一个包含三个表的关系数据库。第一个包含与第二个相关的 id。第二个包含与第三个相关的 id。第三个包含我所追求的结果。

是否可以通过单个查询来查询第一个表中的 id,它给出了第三个表中与之相关的所有结果?

抱歉,我是 mySQL 的新手。

0 投票
3 回答
9473 浏览

mysql - mySQL - 插入三个表

我最近问了这个问题。

我有一个包含三个表的关系数据库。第一个包含与第二个相关的 id。第二个包含与第三个相关的 id。第三个包含我所追求的结果。

是否可以通过单个查询来查询第一个表中的 id,它给出了第三个表中与之相关的所有结果?

我选择的解决方案是:

select * from table1 t1 join table2 t2 on t1.t2ref = t2.id join table3 t3 on t2.t3ref = t3.id

添加 where 子句以搜索 table1 中的某些行

其中 t1.field = '值'

我的新问题是:

我意识到我也需要插入三个表。我正在处理的是预订系统。是否可以编写一个在查询三个表后直接插入到三个表中的查询(使用连接?)。

我还有另一个考虑因素是我是否应该使用事务来确保同时运行两个查询......两者都发现 id 是“未保留的”,然后导致双重预订,还是有更简单的方法?

0 投票
2 回答
410 浏览

php - MySQL:在由外键链接的表中插入记录

在 MySQL 中,是否可以通过外键链接两个表,并在将记录插入父表时在子表中创建相应的记录?

我有一个处理会员注册的网站。一个表包含成员的详细信息,例如姓名和电子邮件地址,并通过成员 ID 链接到设置表。我想要的是在我创建新成员时自动将相应的记录输入到设置表中。这可能吗?还是会涉及存储过程?

0 投票
2 回答
83 浏览

ruby-on-rails - 如何以规范化的方式将单词组合存储在关系数据库中?

我正在尝试找到一种存储以下形式的单词组合的好方法:

默认情况下会给出这些组合。组合中的每个单词都存储为表“标签”中的唯一行。

我想到了一个名为“组合”的新表:

但是在一列中存储多个单独的值并不是标准化的设计。有什么想法吗?

顺便说一句:我正在使用 MySQL 和 ActiveRecord/Rails。

0 投票
2 回答
15695 浏览

sqlite - 如何访问 SQL 脚本中最后插入的行 ID?

我正在使用 SQLite,我有一个属性表和一个子属性表。每个子属性都使用 fkPropertyId 列指向其父级。现在,要创建初始数据库,我有一个看起来像这样的脚本:

现在,我想摆脱硬编码的 rowId,所以它会是这样的:

其中 x 指的是属性表中最后插入的 rowId。此刻,就是

有没有更好的(并且在技术上更准确)的方法来编写这个脚本?

0 投票
3 回答
206 浏览

php - 我需要一个 ORM 来处理 PHP/CI 中的简单相关查询吗?

我非常简单地按照 Codeigniter 的文档视频启动了我的应用程序。

我有以下表格:

关系如下: 1 客户对许多订单 1 客户对许多联系人 1 联系人对许多订单 1 订单对许多项目

现在,当我尝试从仅通过订单表中的查询传递的视图中获取帐户名称时,查询可能会有点麻烦。

话虽如此,该应用程序非常简单,并且没有太多这些查询。

我只是想知道你对 ORM 的看法——你认为这样一个简单的应用程序有必要吗?

0 投票
4 回答
184 浏览

sql - 通过魔术表的关系

我遇到了一个有趣的 SQL 表(列出了列名):
From_TableName | From_Id | To_TableName | To_Id

据我了解,该表用于数据库中的所有表关系。数据库中没有很多数据(前面提到的表中超过 10000 行),所以,我想,性能并不那么重要。我不是 SQL 专家,所以我决定在这里问:我应该将此发送给 DailyWTF 还是在某些情况下这是一个可行的解决方案?

我的想法:我只是看不到这种方法有任何好处。当然,您的所有关系只需要一张表,但这算不上加分。而且我不确定当你创建一个新表时是否真的有更少的工作。除非你想让你的用户做任何事情,否则一定有某种验证逻辑(什么样的关系是有效的),你需要更新它。

0 投票
2 回答
1629 浏览

php - 在关系表上使用 INSERT 的更好方法是什么?

我正在经历我的第一个 mysql INSERT测试,我正在使用这些表:

我会将数据存储在table_employeetable_areastable_agency中,但我不会被迫同时保存所有数据,因此我可以创建一个员工,然后创建一个机构或地址。

在单个数据插入的情况下,我应该使用这样的东西还是应该直接使用表node_employees,如果是,我该怎么做?

为了将行相互链接,我创建了一个关系表node_employees。我用它来将员工与区域或机构联系起来,那么我应该怎么做才能将数据与这个关系表联系起来呢?

我还有一个疑问,如果我需要将员工与区域联系起来,我应该怎么做?我应该使用不同的查询,所以查询每种可能性?