天道酬勤,学无止境

从 2 个不同的表中检索值并将它们放入 Laravel 的视图中(Retrieve values from 2 different tables and put them in a view with Laravel)

问题

我有 2 张桌子作为食物

  • Food_id(pk)
  • 食品名称
  • 描述
  • 图片
  • 价钱

另一张桌子是餐厅

  • Res_id(pk)
  • 名称
  • 地点

我将数据透视表food_restaurant设为:

  • ID
  • Food_id(fk)
  • Res_id(fk)

我想在我的视图中显示餐厅的位置以及食物的详细信息。为此,我在模型Food.php中将函数设为

public function restaurant()
{
    return $this->belongsToMany('App\Restaurant','food_restaurant','Food_id','Res_id');

}

和其他模型Restaurant.php作为

public function food()
{
    return $this->belongsToMany('App\Food','food_restaurant','Res_id','Food_id');
}

我的控制器是:

class Detailscontroller extends Controller

      {
       public function index()

       {

       $Foods= Food::all();

       return view('welcome', compact('Foods'));

       }
      public function show($Food_id)

       {
   $food =Food::findOrFail($Food_id);

       return view('show', compact('food'));

       }

       }

和路线是:

Route::get('/','DetailsController@index');

Route::get('/{Food_id}', 'DetailsController@show');

查看welcome.blade.php是:

@extends('layouts.app')

     @section('content')

     <div class="container">

      <div class="row">

       <div class="col-md-10 col-md-offset-1">

      @foreach($Foods as $Food)

    <p><img src="{{ asset('uploads/'.$Food->Image) }}" /><p>
     <Food>

     <h2>
      <a  href="/{{$Food->Food_id}}">{{$Food->FoodName}}
     <i class="fa fa-chevron-circle-right"></i></a
      </h2>
      </Food>

      @endforeach            

            </div>          
      </div>

        @endsection

show.blade.php是:

@extends('layouts.app')

@section('content')

<h1 align="center">{{$food -> FoodName}}</h1>

<p><img src="{{ asset('uploads/'.$food->Image) }}" /><p>

 <detail>
 <h3><p>FoodDescription:</h3><h4>{{$food->Description}}</h4></p>

 <h3><p>Price:</h3><h4>{{$food->Price}}</h4></p>

 @foreach ($food->restaurant as $restaurant) 

 <h3><p>Location:</h3><h4>{{$restaurant->Location}}</p></h4>

 @endforeach 

 @endsection

但它没有向我显示位置。如何在我的 show.blade.php 视图中显示位置?我是 laravel 的新手。问题出在哪里?

回答1

将食物数组返回到关联餐厅的视图。

public function show($Food_id)
{
   $food = Food::with('restaurant')->findOrFail($Food_id);
   return view('show', compact('food'));
}

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 为什么要在数据库中创建视图?(Why do you create a View in a database?)
    问题 为什么以及何时有人决定他们需要在数据库中创建视图? 为什么不运行普通的存储过程或选择呢? 回答1 视图提供了许多好处。 1.视图可以隐藏复杂性 如果查询需要连接多个表,或者具有复杂的逻辑或计算,则可以将所有逻辑编码到视图中,然后像在表中一样从视图中进行选择。 2.视图可以用作安全机制 视图可以从一个或多个表中选择某些列和/或行,并且可以在视图上而不是基础表上设置权限。 这允许仅显示用户需要查看的数据。 3.视图可以简化对遗留代码的支持 如果您需要重构一个会破坏大量代码的表,则可以用同名视图替换该表。 该视图提供了与原始表完全相同的架构,而实际的架构已更改。 这样可以避免引用该表的遗留代码被破坏,从而使您可以随意更改遗留代码。 这些只是视图如何有用的众多示例中的一部分。 回答2 除其他外,它可以用于安全性。 如果您有“客户”表,则可能要授予所有销售人员访问名称,地址,邮政编码等字段的权限,而不是credit_card_number的权限。 您可以创建一个视图,该视图仅包括他们需要访问的列,然后在视图上授予他们访问权限。 回答3 视图是查询的封装。 转换为视图的查询往往很复杂,因此将其保存为视图以供重用可能是有利的。 回答4 我通常创建视图以对通常用于报告目的的数据进行非规范化和/或聚合。 编辑 通过详细说明,如果我要拥有一个数据库,其中的某些实体是人员,公司,角色,所有者类型
  • 哈希表如何工作?(How does a hash table work?)
    问题 我正在寻找有关哈希表如何工作的解释-用朴素的英语代表像我这样的简单人! 例如,我知道它需要键,计算哈希值(我正在寻找一种解释方式),然后执行某种模运算以计算出它在存储值的数组中的位置,但这就是我的知识所在。 谁能澄清这个过程? 编辑:我不是在专门询问哈希码是如何计算的,而是哈希表如何工作的一般概述。 回答1 这是外行的解释。 假设您想在图书馆中装满书籍,而不仅仅是将它们装在其中,而且还希望能够在需要时轻松地再次找到它们。 因此,您决定,如果想读书的人知道这本书的书名和要启动的确切书名,那么这便是全部。 有了书名,这个人在图书馆员的帮助下应该能够轻松,快速地找到这本书。 那么,你该怎么做呢? 好吧,很明显,您可以保留每本书放置位置的某种列表,但是与搜索图书馆时存在相同的问题,您需要搜索列表。 当然,列表会更小并且更易于搜索,但是您仍然不想从库(或列表)的一端到另一端依次搜索。 您想要具有书名的内容,可以一次为您提供正确的位置,因此您所要做的就是漫步到正确的书架上,然后拿起书。 但是那怎么办呢? 好了,在填充库时需要一些周全的考虑,而在填充库时需要进行大量的工作。 您可以设计一个聪明的小方法,而不仅仅是开始从一端到另一端填充库。 您拿起这本书的书名,通过一个小的计算机程序运行它,这会吐出书架号和该书架上的插槽号。 这是您放置书的地方。 该程序的优点在于,以后,当有人回到阅读本书时
  • 处理 PHP 和 MySQL 中的时区(Dealing with timezones in PHP and MySQL)
    问题 我试图了解分别在我的应用程序堆栈中更改和转换时区和时间的确切原因是什么,以及在应用程序代码中将时间转换为所需时区的最佳方法是什么。 我目前正在使用: Javascript/HTML 字体结尾 Laravel PHP 框架服务器端 MySQL 存储(时间戳等默认为本地系统时间) 我认为: MySQL 不能为 DateTime 列存储时区,而只能存储 YYY:MM:DD hh:mm:ss 并且开发人员可以将时区存储在单独的列等中,并将存储的时间转换为应用程序代码中的用户本地,如果用户时区不同。 PHP、Laravel 应用程序应该可以使用并将任何 DateTime 实例转换为使用 date_default_timezone_set() 函数设置的时区。 我目前观察到的行为: 我用 javascript 日期时间格式设置的对象属性回发 json。 这种格式对我来说是这样的:例如'Thu Jun 16 2016 18:00:00 GMT+1000 (AEST)' 当此 json 数据到达我的服务器时,应用程序框架或 PHP 会自动将其转换为 UTC,即使我将 date_default_timezone_set('Australia/Sydney') 放入控制器类或更改应用程序配置,替换 laravel UTC 默认值。 我怀疑有些东西没有注册? 如果我能够节省来自客户端的时间
  • 最佳数据库结构 - 带有空字段或更多表的“更宽”表?(Optimal database structure - 'wider' table with empty fields or greater number of tables?)
    问题 我需要将附加数据放入数据库中,并且可以在修改现有表 (table_existing) 或创建新表之间进行选择。 这就是 table_existing 现在的样子: table_existing ------------------------- | ID | SP | SV | Field1 | | .. | WW | 1 | ...... | | .. | WW | 1 | ...... | ------------------------- 选项 (A) table_existing ---------------------------------------------------------------------- | ID | SP | SV | Field1 | Field2 | Field3 | Field4 | Field5 | Field6 | | .. | XX | 1 | ...... | ...... | ...... | ...... | ...... | ...... | | .. | YY | 2 | ...... | ...... | ...... | ...... | ...... | ...... | --------------------------------------------------------------------
  • 什么是最好的 SQL Server 性能优化技术? [关闭](What are the best SQL Server performance optimization techniques? [closed])
    问题 关门了。 这个问题需要更加集中。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其仅通过编辑此帖子即可将重点放在一个问题上。 3年前关闭。 改善这个问题 我一直采用以下方法:首先以最少的索引集部署数据库,然后根据性能要求添加/更改索引。 这种方法相当有效。 但是,它仍然没有告诉我在哪里可以提高性能。 它只告诉我哪里性能如此糟糕以至于用户抱怨它。 目前,我正在重构许多应用程序上的数据库对象。 因此,由于“过早的优化是万恶之源”,我是否应该不去寻求性能改进? 在重构应用程序代码时,开发人员一直在寻找提高代码质量的方法。 是否有一种方法可以不断寻求数据库性能的改进? 如果是这样,您发现哪些工具和技术最有帮助? 我曾短暂地与“数据库引擎优化顾问”打过交道,但并没有发现它有什么帮助。 也许我只需要更多的经验来解释结果。 回答1 我的方法是使用SQL Server Profiler将针对服务器或数据库的命令收集到表中。 一旦有了它,您就可以根据最大和平均执行时间、最大和平均 cpu 时间以及(也非常重要)查询运行的次数进行查询。 因为我尝试将所有数据库访问代码放在存储过程中,所以我很容易打破查询。 如果您使用内联 SQL,它可能会更难,因为更改查询中的值会使它看起来像一个不同的查询。 您可以尝试使用LIKE运算符解决此问题,将相同类型的查询放入相同的存储桶中以计算聚合(最大值
  • 使用不同的模式同步 2 个数据库(Syncrhonizing 2 database with different schemas)
    问题 我们有一个使用通用表设计的规范化 SQL Server 2008 数据库。 因此,我们有通用表(实体、实例、关系、属性等),而不是为每个实体(例如产品、订单、订单项等)设置单独的表。 我们决定使用一个单独的非规范化数据库来快速检索数据。 假设它们具有不同的架构,您能否告诉我同步这两个数据库的各种技术? 干杯,莫什 回答1 当两个数据库具有如此完全不同的模式时,您应该着眼于数据迁移或复制技术,而不是同步技术。 SQL Server 为此提供了两种技术,SSIS 和复制,或者您可以编写自己的脚本来执行此操作。 复制将从源数据库获取新的或修改过的数据并将其复制到目标数据库。 它提供了调度、打包和分发更改的机制,并且可以处理实时和批量更新。 为了工作,它需要在两个数据库中添加足够的信息来跟踪修改和匹配行。 在您的情况下,很难确定哪些“产品”发生了变化,因为您必须在 4 个或更多不同的表中确定所有相关的修改行。 它可以做到,但需要一些努力。 在任何情况下,您都必须创建与目标架构匹配的视图,因为复制不允许对源数据进行任何转换。 SSIS 将从一个源中提取数据,对其进行转换并将其推送到目标。 它没有用于跟踪更改的内置机制,因此您必须向表中添加字段以跟踪更改。 严格来说,这是一个可以按计划运行的批处理过程。 主要的好处是您可以执行各种各样的转换,而复制几乎不允许(除了从视图中绘制数据)。
  • 在 INSTEAD OF INSERT 触发器中使用默认值(Using default values in an INSTEAD OF INSERT trigger)
    问题 我们正在执行到 SQL Server 的数据库迁移,为了支持旧应用,我们在 SQL Server 表上定义了视图,这些视图按照旧应用的预期呈现数据。 但是,当字段可能具有默认值时,我们现在在这些视图上定义 INSTEAD OF INSERT 触发器时遇到了问题。 我会试着举一个例子。 数据库中的一个表有 3 个字段,a、b 和 c。 c 是全新的,遗留应用程序不知道它,所以我们还有一个包含 2 个字段的视图,a 和 b。 当遗留应用程序尝试在其视图中插入一个值时,我们使用 INSTEAD OF INSERT 触发器来查找应该进入字段 c 的值,如下所示: INSERT INTO realTable(a, b, c) SELECT Inserted.a, Inserted.b, Calculated.C FROM... (查找的详细信息不相关。) 此触发器运行良好,除非字段 b 具有默认值。 这是因为如果查询 INSERT INTO legacyView(a) VALUES (123) 被执行,然后在触发器中,Inserted.b 是 NULL,不是 b 的默认值。 现在我遇到了一个问题,因为我无法区分上面的查询,这会将默认值放入 b,而这个: INSERT INTO legacyView(a,b) VALUES (123, NULL) 即使 b 是非 NULLABLE
  • 优化下一个和上一个元素的查询(Optimizing queries for the next and previous element)
    问题 我正在寻找无需运行完整查询即可检索记录的下一条和上一条记录的最佳方法。 我有一个完全实施的解决方案,并想知道是否有更好的方法来做到这一点。 假设我们正在为一个虚构的蔬菜水果商建立一个网站。 除了他的 HTML 页面之外,他每周都想在他的网站上发布一份特价商品列表。 他希望这些报价位于实际的数据库表中,并且用户必须能够以三种方式对报价进行排序。 每个项目还必须有一个详细信息页面,其中包含有关报价的更多文本信息以及“上一个”和“下一个”按钮。 “上一个”和“下一个”按钮需要根据用户为列表选择的排序指向相邻条目。 (来源:pekkagaiser.com) 显然,在第一个示例中,“Tomatoes, Class I”的“next”按钮必须是“Apples, class 1”,在第二个示例中必须是“Pears, class I”,而在第三个示例中没有。 详细视图中的任务是确定下一个和上一个项目,而无需每次都运行查询,将列表的排序顺序作为唯一可用的信息(假设我们通过 GET 参数?sort=offeroftheweek_price ,并忽略安全隐患)。 显然,简单地将下一个和上一个元素的 ID 作为参数传递是第一个想到的解决方案。 毕竟,此时我们已经知道 ID。 但是,这不是这里的一个选项——它可以在这个简化的例子中工作,但在我的许多现实世界用例中却不是。 我目前在 CMS
  • 一桌还是多桌? [关闭](One table or many? [closed])
    问题 关门了。 这个问题是基于意见的。 它当前不接受答案。 想要改善这个问题吗? 更新问题,以便可以通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 我正在尝试设计一个用于保存学术参考信息的应用程序。 问题在于每种不同类型的参考文献(例如,期刊文章,书籍,报纸文章等)都需要不同的信息。 例如,期刊参考书既需要期刊标题和文章标题,也需要页码,而书籍则需要出版商和出版日期,而期刊文章则不需要。 因此,我应该将所有引用存储在数据库的一个表中,还是在不应用字段时将其留空,或者应该拥有各种表(例如BookReferences,JournalReferences,NewspaperReferences),并在每个表中放置适当的引用。 然后的问题是,这将使得搜索所有参考文献变得更加困难,并且编辑可能不得不更加分开地进行。 (顺便说一下,我正计划在该项目中使用Ruby on Rails,但我怀疑这对这个设计问题是否有任何影响) 更新: 还有其他意见吗? 我希望得到一个简单的答案,说某种特定的方法肯定被认为是“最佳”的方法-但是像往常一样,事情并不是那么简单。 “单表继承”选项看起来很有趣,但是没有很多信息可以很容易地找到-我可能会在此站点上发布有关此问题的另一个问题。 我分为Olvak的答案和Corey的答案。 Corey的答案给出了Olvak并不是最好的原因
  • 可以支持专用属性的数据库架构(Database schema which can support specialized properties)
    问题 我需要存储一组实体,其中有几个专门的版本。 它们具有一些共同的属性,但是专门的属性包含特定于该实体的属性。 解决方案 数据存储区是一个关系DBMS,这不用于讨论:-)具体来说,它是Microsoft SQL Server 2005。 我可以轻松地为公用属性创建一个表,然后为每个专用版本创建一个表。 但是,很可能以后必须将新实体添加到解决方案中,并且我不想同时维护对象模型和数据库架构。 另一个想法是创建一个表 reading(<common properties>, extended_properties) 并让extended_properties字段是扩展属性的某种序列化。 我在想JSON或XML。 我很可能会使用ORM框架,但我尚未决定。 无论哪种方式, reading中的专门实体的对象表示都可以公开字典{extended_property_name, value}其中包含来自extended_properties字段的已解析键/值对。 从此http://msdn.microsoft.com/zh-cn/library/ms345117(SQL.90).aspx中,我收集到XML字段以及用于这些字段的模式,它们给出了DBMS内部类型化XML的概念。 同样,涉及extended_properties字段中的XML内容的查询也可以考虑这些内容。 我想要的是
  • 使用SELECT *时的性能问题? [复制](Performance issue in using SELECT *? [duplicate])
    问题 这个问题已经在这里有了答案: 9年前关闭。 可能重复: 哪个更快/最好? SELECT *或SELECT column1,colum2,column3等不使用select *的原因是什么? 使用SELECT *而不是SELECT FiledName,FiledName2 ...是否存在任何性能问题? 回答1 如果您需要列的子集,则会给优化器提供不好的帮助(无法选择索引,或者只能选择索引,...) 某些数据库可以选择仅从索引中检索数据。 那东西非常有帮助,并提供了令人难以置信的加速。 运行SELECT *查询不允许使用此技巧。 无论如何,从应用的角度来看,这不是一个好习惯。 例子: 您有一个包含20列的表T(C1,C2,...,C19 C20)。 您在(C1,C2)的T上有一个索引您SELECT C1, C2 FROM T WHERE C1=123 优化器具有索引上的所有信息,不需要转到表中的数据 相反,如果您SELECT * FROM T WHERE C1=123 ,那么优化器需要获取所有列数据,那么就不能使用(C1,C2)上的索引。 在多个表的联接中很有帮助。 回答2 看一下这篇文章: 不使用select *的原因是什么? 还有这些: 限制SQL查询与调用整个行时的性能优势选择哪个更快或更最佳,请选择*或选择column1 colum2 column3
  • 最常见的SQL反模式是什么? [关闭](What are the most common SQL anti-patterns? [closed])
    问题 从目前的情况来看,这个问题不适合我们的问答形式。 我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。 如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我们所有使用关系数据库的人都已经知道(或正在学习)SQL是不同的。 选出想要的结果并有效地进行,涉及到一个乏味的过程,部分过程是学习不熟悉的范例,并发现我们最熟悉的编程模式在这里不起作用。 您见过(或自己犯过)的常见反模式是什么? 回答1 对于大多数程序员在数据访问层中混合其UI逻辑的趋势,我始终感到失望: SELECT FirstName + ' ' + LastName as "Full Name", case UserRole when 2 then "Admin" when 1 then "Moderator" else "User" end as "User's Role", case SignedIn when 0 then "Logged in" else "Logged out" end as "User signed in?", Convert(varchar(100), LastSignOn, 101) as "Last Sign On", DateDiff('d', LastSignOn, getDate()) as
  • 查询以获取下一个身份? [关闭](Query to get the next identity? [closed])
    问题 关闭。 此问题不符合 Stack Overflow 准则。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 7年前关闭。 改进这个问题 查询以获取下一个身份? 这对于没有删除记录的表是可能的: SELECT TOP 1 EMPID + 1 FROM Employee ORDER BY EMPID DESC 如果有删除的数据,我将如何获得下一个身份? 例如我有一个这样的表: EMPID NAME 4001 someName 4002 someName 4003 ----------------------- this is deleted 4004 someName 4005 someName 4006 someName 4007 someName 4008 someName 4009 ----------------------- this is deleted 4010 ----------------------- this is deleted 输出必须是 4011 回答1 在应用程序的表单上可靠地显示IDENTITY值的唯一方法是INSERT IT FIRST 。 当您是唯一一个测试它的人时, IDENT_CURRENT似乎对您有所帮助,但我可以向您保证,一旦有多个用户使用您的应用程序,它就会很快崩溃。 也很容易证明
  • Sql必知必会读书笔记
    SQL的基本规则 不同的DBMS对于SQL的拓展不同,常规方法不行时请注意查找对应DBMS文档 例如:查找前五行数据: Sql server: Select Top 5 Oracle:Select * from Table wehre Rownum=5 Mysql: Select * from Table Limit 5 Offset 5(指示的是从第五行起,返回五行数据) 一般单行注释都是两个--添加在行头就注释了一行,多行注释/* */排序时默认的是ASC排序,其中,数据库操作系统(DBMS)在字典(dictionary)是不区分大小写的(A,a) 如果含有大量需要排序的英文(A,a)通过Order by是行不通的数据库过滤和应用过滤 数据也是可以在应用层过滤的。为此可以在客户端使用SQL语句查询到对应的数据,然后在客户端进行循环遍历查找到所需的数据。 但是这种做法是极其不好的。优化数据库可以快速有效地对数据进行过滤。而让客户端应用(开发语言)处理数据库的工作将会极大地影响应用的性能,并且使创建的应用完全不具备可伸缩性。此外如果在客户端过滤数据,服务器不得不通过网络发送多余的数据,这就极大地浪费了带宽和资源,直接降低了应用的执行速度 空值检查 NULL(no value)它与字段包含0,空字符串或仅仅包含空格不同 确定null不能通过检查是否=null
  • 查找表最佳实践:数据库表……或枚举(Lookup Tables Best Practices: DB Tables… or Enumerations)
    问题 如果我们必须存储公司的可用职位(即经理、团队负责人等)。 存储它的最佳做法是什么? 我有两种意见和评论......“当然,欢迎你的” 将其存储为带有 ID 和 Name 列的 DB 表,并使用查询和连接进行处理。 将其存储为 Enum 并忘记 DB 表。 在我看来,如果我有更改项目,我会选择第一个解决方案。 这样我就不会将这些选项硬编码为 Enum。 如果我确信数据不会改变(例如,性别:男性、女性),我可以选择 Enum 解决方案。 注意:我用英语编写代码,UI 文化可能是阿拉伯语。 如果我将使用 Enum 解决方案,我将在表示层中对基于文化的字符串进行硬编码,从最佳实践的角度来看是否可以!!!! 我想知道您的意见,如果我的想法符合最推荐的“最佳实践”? 回答1 一般来说,你应该只在有一组明确的不会改变的项目时使用枚举,例如原色或大陆名称。 否则,带有适当实现的外键的查找表几乎总是最好的选择。 查找表选项可能存在变化,您可能有大量查找表用于简单的 id/value 关系。 域/查找表对可以显着减少所需的表数量,尽管会增加一些额外的编码复杂性。 在这种情况下,您将有一个域表 DomainID int identity Domain varchar(255) 和一个键/值表 DomainID int ID int identity Value varchar(255) 因此
  • 如何为用户授权目的处理数据库中的大量记录存储?(How to handle massive storage of records in database for user authorization purposes?)
    问题 我正在使用Ruby on Rails 3.2.2和MySQL。 我想知道在与一个类相关的数据库表中存储与实例的每个“组合”相关的其他两个类的所有记录是否在“可取” /“可取”之间。 也就是说,我有User和Article模型。 为了存储所有用户文章授权对象,我想实现一个ArticleUserAuthorization模型,以便在给定N个用户和M个文章的情况下,有N * M条ArticleUserAuthorization记录。 这样,我可以声明和使用ActiveRecord::Associations如下: class Article < ActiveRecord::Base has_many :user_authorizations, :class_name => 'ArticleUserAuthorization' has_many :users, :through => :user_authorizations end class User < ActiveRecord::Base has_many :article_authorizations, :class_name => 'ArticleUserAuthorization' has_many :articles, :through => :article_authorizations end 但是
  • SQL Server查询优化和事务处理
    对于了解掌握SQL的增、删、改、查的语句操作是最基本的,实际生产环境中,我们还会用到一些比较高级的数据处理和查询,包括索引、视图、存储过程和触发器。本篇博文主要如何更好的实现对数据库的操作、诊断及优化。 博文大纲:一、索引;二、视图;三、存储过程;四、触发器;五、事务; 一、索引 索引提供指针以指向存储在表中指定列的数据值,然后根据指定的次序排列这些指针,再跟随指针到达包含该值的列。 1.什么是索引 数据库中的索引与书籍中的目录相似。在一本书中,无需阅读整本书,利用目录就可以快速的查找到所需的信息。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需的数据。书中的目录就是一个词语列表,其中注明了包含各个词的页码。而数据库中的索引是某个表中一列或若干列值的集合,以及物理表示这些值得数据业的逻辑指针清单。 索引是SQL Server编排数据的内部方法,它为SQL Server提供一种方法来编排查询数据的路由。 索引页是数据库中存储索引的数据页。索引页存放检索数据行的关键字页以及该数据行的地址指针。通过使用索引,可以大大提高数据库的检索速度,改善数据库性能。 2.索引分类 在SQL Server中,常用的索引有: (1)唯一索引 唯一索引不允许两行具有相同的索引值。 如果现有数据中存在重复的键值,则一般情况下大多数数据库不允许创建唯一索引。当新数据使表中的键值重复时
  • han_Mysql
    数据库基础知识为什么要使用数据库数据库保存在内存优点:存取速度快缺点:数据不能永久存储数据保存在文件优点:数据永久保存缺点:速度比内存操作要慢,频繁的I/O操作;查询数据不方便数据保存在数据库数据永久保存使用SQL语句,查询方便效率高管理数据方便什么是SQL结构化查询语言(Structured Query Language)简称 SQL,是一种数据库查询语言。作用: 用于存储数据、查询、更新和管理关系数据库系统什么是MySQLMySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。 MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。 在Java企业级开发中非常常用,因为MySQL 是开源免费的,并且方便扩展。数据库三大范式是什么第一范式:每个列都不可再拆分 第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。 第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能,事实上我们经常会为了性能而妥协数据库的设计
  • 该值违反了该列的完整性约束(The value violated the integrity constraints for the column)
    问题 我正在尝试将数据从Excel文件导入SQL Server数据库。 我无法这样做,因为我在日志文件中遇到以下错误。 请帮忙。 日志错误如下: [OLE DB目标[42]]错误:发生OLE DB错误。 错误代码:0x80040E21。 OLE DB记录可用。 源:“ Microsoft SQL Native Client”结果:0x80040E21说明:“多步OLE DB操作生成错误。检查每个OLE DB状态值(如果可用)。未完成工作。”。 [OLE DB目标[42]]错误:输入“ OLE DB目标输入”(55)上的输入列“ F2副本”(5164)出错。 返回的列状态为:“该值违反了该列的完整性约束。”。 [OLE DB目标[42]]错误:“输入“ OLE DB目标输入”(55)”失败,因为发生了错误代码0xC020907D,并且在“输入“ OLE DB目标输入”(55)”上的错误行配置指定失败错误。 指定组件的指定对象发生错误。 [DTS.Pipeline]错误:组件“ OLE DB目标”(42)上的ProcessInput方法失败,错误代码为0xC0209029。 所标识的组件从ProcessInput方法返回了错误。 该错误是特定于组件的,但该错误是致命的,将导致“数据流”任务停止运行。 [DTS.Pipeline]错误:线程“ WorkThread0”已退出
  • Laravel 全局设置模型(Laravel Global Settings Model)
    问题 我正在 Laravel 5 中构建一个小型 CRUD 应用程序。我有一些应用程序范围的设置,例如“SiteTitle”和“BaseURL”,我想让我的管理员能够从 UI 进行更改。 我的整个应用程序使用 base.blade.php 模板,该模板扩展到不同的视图+控制器,这是最有可能使用这些设置的地方。 就像是: <h1><a href="#">{{ $setting->SiteName }}</a></h1> 我将设置存储在与 Setting.php 模型相关的数据库表中。 我宁愿不是我的每个控制器方法都查询数据库以获取这些设置,而是将它们传递给模板 base.blade.php。 创建某种类型的全局设置变量的最佳方法是什么,我可以在整个应用程序中重复使用? 提前致谢! 回答1 您可以创建一个服务提供者,比如SettingsServiceProvider ,它从数据库加载所有设置,然后缓存它们。 然后在后续页面加载时,它可以返回缓存的设置值而不是查询数据库,您应该理所当然地关注这一点。 像这样简单的事情: class SettingsServiceProvider extends ServiceProvider { /** * Register the application services. * * @return void */ public function