繁体   English   中英

Laravel和数据库设计

[英]Laravel and Database Design

我在Reddit上问了这个问题,但没有得到答案。 我以为我会在这里尝试。

我是Laravel的新手,已经阅读了文档,还观看了Jeffrey Way的NetTuts视频。 但是我还没有深入,所以如果在其他地方清楚地回答了这个问题,请指出我的方向。

我来自CodeIgniter背景,对于我完成的所有项目,我通常都在MySQL Workbench中设计数据库。 我还使用它来更改架构以及数据库的可视化地图。 MySQL Workbench文件通常通过Git与其他开发人员一起传递。

Laravel似乎希望您使用迁移来创建表,这似乎有点反感,来自MySQL Workbench。 我知道迁移可以充当数据库的版本控制,这看起来非常不错。 但是,除此之外,我还不太明白这一点。

谁能向我解释为什么我应该通过Laravel的迁移功能与我的工作方式建立表?

好吧,这是一个有效的担忧。 尽管Laravel并没有特别强迫您使用它,但我可以想到一些实现它的原因:

  1. 相容性 它适用于几乎所有数据库。 如果您决定从MySQL更改为PostgreSQL,则几乎没有更改。
  2. 版本控制 正如您自己提到的那样,它使您可以控制数据库中的更改,并提供快速简便的方法来更新您已在运行的数据库。
  3. 易于使用 通过命令行调用它非常容易。 意味着通过外壳程序在服务器端创建数据库不会有任何问题。

Laravel是一个PHP框架。 与Zend等其他框架一样,您的开发到部署的时间框架将大大减少,并且在您的项目变得越来越大且将来需要更多开发人员的情况下,其他开发人员可以理解的框架内进行开发。

作为Laravel的一部分,迁移旨在快速轻松地设置数据库方案,而无需键入任何MySQL。 它还可以正确显示架构。 由于您的模式存在于文件中,因此您可以轻松地回滚和轻松传输模式。

Laravel进行迁移的主要原因是因为版本控制。 创建迁移时,名称中会附加一个日期。 我自己使用Laravel,而且我绝对喜欢迁移。 与Schema builder一起使用,无需使用古老的MySQL方法,我的生活变得更加轻松。 这是Schema和迁移的一些示例

创建新迁移文件的简单命令:

php artisan migrate:make create_users_table

在用户表迁移文件中:

Schema::create('users', function($table){
     $table->increments('id'); [will create a increments field with name of ID]
     $table->string('username'); [string field with name of username]
     $table->string('password'); [password is a special  field] 
     $table->text('body'); [string field with name of username]
}); 

在底部,您只需添加以下内容:

Schema::drop('users');

然后运行迁移命令:

php artisan migrate

它将所有列添加到表中。

如果您想取回数据库或将其添加到数据库中,则只需运行此命令

php artisan migrate:rollback

[您可以在此处添加特定命令以仅回滚某些表]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM