Schema::create 比 Sql

Schema::create Vs Sql

我是 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. 使用 ERD Designer 创建模式,如 Mysql Workbench,将图表导出到 sql,最后使用 [=13] 在 Laravel 中执行 sql =]

我正在尝试google哪种方法更好,但没有答案令我满意。

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

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

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

Laravel 附带这些语法:MySQLPostgreSQLSQLiteSQLServer.

如果您使用内置 Schema,您可以在上面的任何数据引擎中使用相同的 migrations,而不必太担心实际的 SQL 实现。

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