【问题标题】:Schema::create Vs SqlSchema::create 与 Sql
【发布时间】:2019-12-27 20:39:16
【问题描述】:

我是 Laravel 的新手,开始了我的个人项目。

Laravel 提供迁移来为我们的数据库创建架构。我在实施选择上有困难。我的想法是:

  1. 使用 Laravel 提供的 Illuminate\Support\Facades\Facade\Schema 创建数据库架构,例如:
Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('username',300)->unique();
            $table->string('email',300)->unique();
            $table->string('password',100);
})
  1. 使用像Mysql Workbench这样的ERD Designer创建模式,将图表导出到sql,最后使用DB::statement在Laravel中执行sql

我正在尝试用谷歌搜索哪种方法更好,但没有一个让我满意的答案。

工业中哪种方法更好或更常用?如果您有任何其他建议,我很高兴知道。

【问题讨论】:

    标签: laravel laravel-5 eloquent laravel-migrations


    【解决方案1】:

    Laravel Schema 是一个抽象,大多数情况下是独立于数据库的,也就是说,如果在 laravel 源代码或 外部库中已经有一个 grammar /em> 您可以对不同的数据库引擎使用相同的迁移,但会出现一些小问题。

    如果您使用Raw SQL,您可以,以防万一,取决于您实际使用的Database Engine。

    Laravel 附带以下语法:MySQL、PostgreSQL、SQLite 和 SQLServer。

    如果您使用内置Schema,您可以在上述任何数据库引擎中使用相同的migrations,而无需过多担心实际的SQL 实现。

    考虑到许多开发人员有一个本地开发环境和一个简单的数据库引擎,如SQLite,有时当他们开始一个项目时,他们甚至不知道将在生产中使用的数据库引擎。考虑一下您想要更改托管服务提供商的情况,或者您有一个廉价提供商的demo project 和其他地方的production。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      相关资源
      最近更新 更多