加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – 创建视图或使用内联?

发布时间:2020-05-22 11:57:50 所属栏目:PHP 来源:互联网
导读:我有一个规范的数据库,外键/主键给一个数据库. 我计划使用PHP访问这个数据库,用于基本的前端/后端显示.现在,我的问题来自这两个示例查询: CREATE VIEW `view` AS SELECT functiondetails.Detail, functionnames.ID, functionnames.FunctionName, functionnam

我有一个规范的数据库,外键/主键给一个数据库.

我计划使用PHP访问这个数据库,用于基本的前端/后端显示.现在,我的问题来自这两个示例查询:

CREATE VIEW `view` AS
  SELECT
    functiondetails.Detail,functionnames.ID,functionnames.FunctionName,functionnames.Catogory
  FROM functiondetails
    INNER JOIN functionnames ON functiondetails.AsscID = functionnames.ID

要么

SELECT
  functiondetails.Detail,functionnames.Catogory
FROM functiondetails
  INNER JOIN functionnames ON functiondetails.AsscID = functionnames.ID

查询中没有错误,因为我一直都没有运行,但我的整体问题是这样的:

如果我打算不断地从我的数据库中引用很多信息.创建视图不会更容易,然后会随着新添加的信息更新,或者更好的做法是在我的实际php上进行第二个查询.示例:

$Query = $MySQli->prepare("
  SELECT
    functiondetails.Detail,functionnames.Catogory
  FROM functiondetails
    INNER JOIN functionnames ON functiondetails.AsscID = functionnames.ID
")
$Query->execute();
$Results = $Query->fetch_results();
$Array = $Results->fetch_array(MYSQLI_ASSOC);

还是从我的角度选择?

$Query = $MySQLi->prepare("SELECT * FROM `view`");
$Query->execute();
$Results = $Query->fetch_results();
$Array = $Results->fetch_array(MYSQLI_ASSOC);

那么哪一个更好的方法用于查询我的数据库?

Views是 abstraction layer,创建抽象层的通常原因是为您提供一个使您的生活更轻松的工具.

使用视图的一些重要优点包括:

>安全
您可以控制谁拥有访问权限,而无需授予他们对基础表的访问权限.
>澄清
通常情况下,列标题的描述不一样.视图允许您添加清晰的返回数据.
>表现
表现明智,意见不会对你造成负面伤害.但是,您不会因为MySQL不支持materialized views而使用视图来获得性能提升.>轻松编码视图可以用于重复使用复杂的查询,用户错误的空间较小.>易于管理当您的表格模式发生变化时,它将使您的生活更轻松.例如,假设您有一张包含您要出售的房屋的房屋,homes_for_sale,但后来您决定要让该桌子处理您曾经出售/出售的所有房屋,目前都是出售所有房屋.显然,新表的模式与第一个方案有很大的不同.如果您从homes_for_sale中提取了大量查询,那么现在您必须遍历所有代码并更新所有查询.这将打开您的用户错误和管理噩梦.更好地解决这个变化的方法是用相同名称的视图替换表.该视图将返回与原始表完全相同的模式,即使实际模式已更改.然后,如果需要,您可以按照自己的速度浏览代码,并更新查询调用.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读