【发布时间】:2019-05-01 11:33:16
【问题描述】:
您好,我对数据库设计不是很好,所以我想知道是否可以从同一个表中创建一个具有两个外键的表。
我是否可以使用我尝试过的 laravel 迁移来做到这一点,但它不起作用
Schema::create('events', function (Blueprint $table) {
$table->increments('event_id');
$table->integer('book_id')->unsigned();
$table->integer('buyers_id')->unsigned();
$table->integer('seller_id')->unsigned();
$table->integer('status')->default(1);
$table->timestamps();
$table->foreign('book_id')->references('id')
->on('books')
->onDelete('cascade')
->onUpdate('cascade');
$table->foreign('buyers_id')->references('id')
->on('users')
->onDelete('cascade')
->onUpdate('cascade');
$table->foreign('seller_id')->references('id')
->on('users')
->onDelete('cascade')
->onUpdate('cascade');
});
所以事件表会有 3 个 FK
- 书籍中的一个 FK
-
来自用户的两个 FK
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name')->unsigned(); $table->integer('user_type'); $table->integer('password'); $table->timestamps(); });
这是用户表的架构
【问题讨论】:
-
为什么不创建单列
buyer_seller_id并赋予它们buyer和seller的角色? -
在用户表中?
-
events表中的外键和users表中的role -
在用户中可以这样(名称、user_type、“role_id”和密码)
-
是的,并根据要求在事件表中添加他们的 ID
标签: laravel database-design database-migration