MySQL CREATE VIEW目标变量表名称(列名称)

问题描述 投票:0回答:1

我想定义很多视图但是DB的模型正在改变,所以我想到了一些想法/问题:

  1. 有没有办法在MySQL 8中创建视图,在FROM没有硬编码表名但表名是一个变量?
  2. 在FROM之后是否可以创建具有硬编码表名的视图但列名是可变的?
  3. 创建一个视图(A)是一个好主意,在FROM没有定位特定(硬编码)表名后,另一个视图(B)作为中间转换表,只从表(C)中选择数据并给出它回到视图(A),其中列的别名与第一个视图(A)所期望的方式相同。简而言之,第二视图(B)在表名和列名方面只是作为(A)<=>(C)之间的翻译?

我正在考虑这些解决方案的原因是我希望为连接到DB的应用程序提供一组表视图。它们不应该改变,但DB的整个模型将会改变。

我不想触及作为应用程序接口的访问视图,而是在应用程序界面视图后面的列和表之间定义一些连接。 DB模型还需要一些其他视图来进行常见的计算/报告,但是计算/报告的源表数据将随着时间的推移而改变(列名,表名)。

  1. 我还能采用其他方法吗?您如何处理更改表名,DB中的列名而不破坏已实现的报告以及期望表和列的特定名称的其他功能的情况?

我正在使用MySQL 8。

mysql variables view interface translators
1个回答
-1
投票
  1. 没有
  2. 没有
  3. 您当然可以这样做,并且基于视图的视图并不罕见。这是一个好主意,这是一个意见问题。
  4. 您无法完全保护应用程序免受基础数据模型更改的影响如果在数据模型中引入,删除或更改列/列,则必须在报表/应用程序中反映它们,因为可用内容将更改。如果重命名了表或列,则可以通过使用视图从应用程序中隐藏它。但是,如果重命名不那么重要,以便您在报表/应用程序中反映出来,那么它就会引发您需要重命名列的问题。

如果您的数据结构变化如此频繁,那么基于SQL的产品可能不适合您,因为SQL需要非常严格的数据结构定义。您可能必须考虑使用NoSql解决方案,以便在数据库架构中实现更大的灵活性。但是,即使您使用NoSql解决方案,数据结构更改也会影响应用程序/报告。

© www.soinside.com 2019 - 2024. All rights reserved.