Schema::create срещу Sql

Аз съм нов с Laravel и започнах моя личен проект.

Laravel предоставя миграции за създаване на схема за нашите бази данни. Имам затруднения при избора на изпълнение. Идеите, които имам са:

  1. Създайте схема на база данни с помощта на Illuminate\Support\Facades\Facade\Schema, предоставена от Laravel, например:
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 и накрая изпълнете sql в Laravel с помощта на DB::statement

Опитвам се да потърся в Google кой метод е по-добър, но нито един отговор не ме удовлетворява.

Кои методи са по-добри или често използвани в индустрията? Ако имате друго предложение, ще се радвам да го науча.


person user1319056    schedule 22.08.2019    source източник


Отговори (1)


Laravel Schema е абстракция и, за повечето, независима от базата данни, т.е. ако вече има grammar в източника на laravel или във външна библиотека, можете да използвате същите миграции с различни Database Engines с дребни проблеми.

Ако използвате Raw SQL, в случай че можете да разчитате на действителния Database Engine, който използвате.

Laravel се доставя с тези граматики: MySQL, PostgreSQL, SQLite и SQLServer.

Ако използвате вградения Schema, можете да използвате същия migrations във всяка от машините за данни по-горе, без да се тревожите твърде много за действителното внедряване на SQL.

Помислете, че много разработчици имат локална среда за разработка с проста база данни като SQLite и понякога, когато стартират проект, те дори не знаят машината на базата данни, която ще се използва в производството. Помислете за случая, в който искате да смените хостинг доставчика или имате demo project на евтин доставчик и production другаде.

person dparoli    schedule 22.08.2019