问题标签 [database-view]

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 回答
142 浏览

database - 如何使用 frappe 访问在数据库中创建的视图

我们在 mariadb 中创建了一个视图。我们想从 Frappe 访问该视图。frappe 是否支持这种功能?

0 投票
1 回答
31 浏览

mysql - view 在向 view 添加额外的列时是否会占用磁盘/文件的空间,这在 table 中不存在?

我想从一个表学生创建一个视图,并想添加一个额外的列。这个视图在添加额外列时会占用磁盘/文件的空间吗?这是我的代码:

0 投票
0 回答
30 浏览

mysql - Mysql:如何使用组创建高性能视图

我有一个查询,我想授予某人查看权限。该查询非常基本,但大致如下:

通常这个视图是在一个 id 上查询的(它在初始表上被索引),像这样:

运行正常查询(针对表,而不是视图)时,这通常在大约 10 毫秒内执行。然而,一旦我创建了这个视图,它似乎在做任何其他事情之前对每一行GROUP BY进行聚合,所以即使我获取一个 ID,查询仍然需要大约 5 分钟才能运行,从而使视图完全无法使用。在 mysql 中有没有办法解决这个问题,还是我只需要让最终用户访问所有这些表来执行查询而不是视图?

(我想另一种选择是在没有的情况下创建视图,GROUP BY然后告诉用户“您必须附加此GROUP BY a.id功能才能使查询正常工作,否则您将得到垃圾结果。”)

我读过的唯一处理这个问题的是mysql8中提供的下推:https ://dev.mysql.com/doc/refman/8.0/en/derived-condition-pushdown-optimization.html ,但也许我'我在这里遗漏了一些东西(手指交叉),有一种简单的方法可以做到这一点!


这是解释计划:

在此处输入图像描述

在派生表上扫描的765375行似乎是杀手。

0 投票
0 回答
16 浏览

c# - 使用两个数据库时,实体框架实体类型“未映射 CustomerSpendings”

我有这个项目,它存在于两个单独的实例中(一个源代码,两个使用它自己的数据库的不同实例)。其中一个数据库有这个名为 CustomerSpendings 的视图,另一个没有。使用实体框架并尝试“从数据库更新模型”时出现此错误:

错误 11007:未映射实体类型“CustomerSpendings”。

这是意料之中的,因为只有一个数据库具有该值。所以。解决此问题的最佳方法是什么。在数据库中创建一个“空”视图(得到错误)或尝试在代码中做一些解决方法?

0 投票
1 回答
43 浏览

sql - Ruby on Rails 将 Timescale SQL 速率代码转换为 Ruby

我正在尝试使用 timescale 中的 Rate 函数来生成图形数据。现在我有一个数据库视图,它使用下面来自 TimescaleDocs 的 SQL 代码中的概念来执行此操作:

有没有办法将其直接转换为时间序列模型中的 ruby​​ 代码以改善运行时?

0 投票
1 回答
31 浏览

django - 在 django 中创建 postgresql 视图

我想使用 postgresql 视图将查询集的中间结果存储在 django 中。

有没有在 django 中创建视图的好方法?

下面是我想要的流程代码!

0 投票
4 回答
108 浏览

sql - 索引视图实际上索引了什么

据我了解,SQL 视图代表“虚拟表”,其中数据实际上保存在视图引用的其他“后备表”中。可以将索引添加到视图以提高性能,但是如果视图只是一个虚拟表,这些索引实际上引用了什么?(它是后备表上的主键还是什么?)

想象一个由SELECT * FROM bookings WHERE IsDeleted=0表示的视图,带有一个关于bookings.AppointmentDate的索引 ...索引可能按约会日期排序(以便于搜索),并且每个索引叶保存该数据所在的行号在视图中......这会起作用......直到预订发生变化并且一些已删除的预订现在未被删除,建议的索引将保持未对齐。

另一种方法是让索引视图现在实际上是预订表的“分身”,因此它是物化的而不是虚拟的。现在索引可以引用分身拥有的任何主键,因此当预订被取消删除时不会中断。但同样,如果预订表发生变化,这个分身器必须“发现”它应该具有的新行(如未删除的预订)以及在返回结果之前需要从自身中删除的行,这在餐桌上不会很昂贵更新否定了使用索引视图的可能好处?

我试图了解索引视图是如何在幕后工作的。

0 投票
1 回答
33 浏览

sql - 从 3 个表返回结果,其中结果数应等于表 1 中的行数乘以表 3 中的行数

我有一个包含三个表的 PostgreSQL 数据库:

  • user:应用程序的用户列表。主键是user_id.
  • course:用户可以注册的课程目录。主键是course_id.
  • enrollment:用户注册课程的记录。主键是enrollment_id.

表之间的关系:

  • enrollment表有两个不能为空的外键:

    • enrollment.user_id参考资料user.user_id
    • enrollment.course_id参考资料course.course_id
  • 如果user1被注册course1,表中应该只有一条记录enrollment可以用来user1连接course1

  • 如果user1未注册,则表中不存在加入的记录。course1enrollmentuser1course1

问题:

  • 我不知道如何编写一个数据库视图,如果我有 2 个用户和 3 个课程,它会返回 6 行,如下所示:

一些上下文:

  • 我无法更改有关数据库的任何内容。
  • 我不关心性能。

我正在进行的工作:

我坦率地希望这会奏效:

由于没有enrollment用户未注册的课程的记录,因此此查询不会返回我期望的结果。例如,结果看起来更像这样:

这不是我所期望的,因为我希望表返回 3 条记录user1,他们没有参加任何课程,而不是只有一行 wherecourse_idenrollment_idare nulluser2同样,由于他们没有注册,所以缺少第三条记录course3,这不是我所希望的。

我怎么解决这个问题?