问题标签 [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.
sql - 表示单个 SQL 表中记录之间的多对多关系的最佳方式是什么?
我有一个这样的 SQL 表:
更新:我正在更改示例表,因为原始数据(州、城市、学校)的现有分层性质掩盖了项目之间需要简单关系的事实。
我想定义这些实体之间的双向关系,以便查看一个实体的用户可以看到所有相关实体的列表。
关系由最终用户定义。
在数据库中表示这些关系并随后查询和更新它们的最佳方式是什么?
我看到的一种方式...
我的直觉是这样的关系表:
既然如此,给定提供的 entity_id 为 4,如何获取所有相关记录,即 1 和 5?
同样, entity_id = 1 的查询应返回 2、3、4 和 5。
感谢您抽出宝贵时间,如果我能澄清这个问题,请告诉我。
flat-file - 如何说服编程团队放弃旧方法?
这更像是一个面向业务的编程问题,我似乎无法弄清楚如何解决。我与一个使用 BASIC 超过 20 年的程序员团队一起工作。我被请来帮助在 .NET 中编写相同的软件,只有更新和现代实践。问题是我似乎无法让其他 3 名团队成员(所有 BASIC 程序员,尽管现在也有 .NET)了解如何正确地创建关系数据库。这是他们无法理解的事情:
我们基本上有一个跟踪客户标签信息的事务。我们需要能够跟踪当前交易和过去的交易。在旧系统中,使用了一个平面文件数据库,其中一个表包含客户当前基本交易的记录,另一个包含客户所有先前交易以及重要货币信息的交易。为了防止冗余,他们会用历史交易覆盖当前交易——(历史文件首先更新,然后是当前的。)这完全没有必要,因为你只需要一个交易表,但我的主管或我的其他两个同事中的任何一个-工人似乎无法理解这一点。我到底如何才能说服他们看到光明,这样我们才能获胜 不必做大量荒谬的工作并最终多次访问数据表吗?感谢您的输入!
database - 是否有一种简单的方法可以为关系数据库进行 GUI 输入?
我正在为一个朋友构建一个学生排班应用程序,除了 GUI 之外,我即将完成。我正在用 wxpython 编写它,但我不确定如何处理输入字段,因为它是一个关系数据库。有没有一种简单的方法可以做到这一点?
sql - 获取同一个表中的公共行
我进行了一些搜索,但没有找到与我想要实现的目标完全一样的东西。
基本上,我试图找到两个用户投票习惯之间的相似之处。
我有一个表格存储每个单独的投票,其中存储:
我的目标是通过找出两件事来计算用户 A 和 B 之间的相似度:
- 他们共有的票数。也就是说,他们都在同一个帖子上投票的次数(此时方向无关紧要)。
- 他们在共同投票中朝同一个方向投票的次数。
(然后简单地将#2 计算为#1 的百分比,以获得粗略的相似性评级)。
我的问题是,我如何找到两个用户的投票集之间的交集?(即我如何充分计算第 1 点,而不会以非常低效的方式循环每一次投票。)如果他们在不同的表中,我想一个 INNER JOIN 就足够了......但这显然行不通在同一张桌子上(或者会吗?)。
任何想法将不胜感激。
database-design - 棘手的关系数据库设计问题
我有一个棘手的问题,我已经搞砸了几天,找不到最佳解决方案。
这些是我的表:
- 地点
- 站点节点
- 页
站点节点表包含代表层次结构的节点列表(使用嵌套集)。每个节点必须有一个或多个关联页面。每个站点必须有一个关联的错误页面和一个未找到的页面。
因此,一个页面必须要么属于一个节点,要么属于一个站点作为错误或未找到页面。我目前正在玩弄的解决方案是:
- 页表上的 parentType 和 parentId 字段,其中 type 可以是“node”、“site_error”或“site_notFound”,id 可以是站点或节点 id(以与类型相关的为准)。
- 页表上的nodeId 字段可以为空,然后是站点表上的errorPageId 和notFoundPageId 字段。
选项 #1 确保每个页面属于一个且仅属于一个其他实体,尽管实际上不能强制执行关系,因为 parentId 字段可以指向多个位置。
选项#2 更简洁,但它基本上是说该站点“属于”两个错误和未找到的页面,这可能是不好的做法。
有什么想法或建议吗?
谢谢,
杰克
database - 关系数据库和网络结构
Microsoft 公司可以称为“microsoft”、“ms”或“m$”等。我们可以说这些名称是一个单一身份的别名。如果要存储“别名”关系,则可能必须按照以下对进行操作
或者也许有更好的方法?
ruby-on-rails - 在具有关系的表单中自动填充 ID
我创建了一个博客,它会有帖子,并且帖子是由用户创建的。我的博客中已经有一个登录系统。我已经建立了用户和他的帖子之间的关系。现在,当我想添加新帖子时,我希望 Rails 自动填充 user_id 字段。
我应该添加一个隐藏字段并从我保存它的会话中添加 user_id 吗?
还是 Ruby on Rails 有自己的方式来处理关系和使用 ID?
@编辑:
该模型:
控制器:
azure - 构建多租户应用程序的最佳实践是什么?
构建支持多租户(例如软件即服务)的应用程序的最佳实践是什么?
非常感谢扩展此主题的白皮书链接。
sql - 在关系数据库中存储文件夹层次结构
我有代表文件夹的对象,我想知道它们是否应该在数据库中表示。
一方面,似乎最简单的方法是不表示文件夹对象,而只存储文件夹中包含的对象的路径值。我看到的问题是您不能保留其后代不包含任何项目的文件夹,这没什么大不了的。此外,我不清楚如何加载要显示的文件夹层次结构(例如在 TreeView 中)而不预先将所有内容加载到内存中,这可能是一个性能问题。
另一种方法是有一个“文件夹”表,其中包含对其父文件夹的引用。这似乎应该工作,但我不确定如何允许具有相同名称的文件夹,只要它们不共享父级。这甚至应该是数据库应该关注的事情,还是我应该在业务逻辑中强制执行的事情?