我想给两种不同类型的用户创建同一事件的能力,但是该事件需要一个user_id,这两种不同类型的用户可以共享。
我正在Laravel中创建一个应用程序,其中两种不同类型的用户(播放器和供应商)可以分别创建事件。
玩家
Schema::create('players', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name');
$table->string('last_name');
$table->integer('player_id_type')->default('1');
$table->unsignedBigInteger('player_id');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
供应商
Schema::create('vendors', function (Blueprint $table) {
$table->increments('id');
$table->string('store name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
事件
Schema::create('events', function (Blueprint $table) {
$table->increments('id');
$table->string('user_id');
$table->string('name')
});
问题是播放器和供应商都可能具有id =1。此外,在创建事件时,我不知道要查找具有该ID的播放器还是供应商。
请提出一些建议,说明如何解决此问题或以其他方式实施它。
谢谢。
答案 0 :(得分:0)
存在冲突,检索“事件”实体时您有两个具有相同主键的表,而不是哪个表引用了user_id?因此您可以添加第三个表,称为用户,然后与事件相关联,以减少冲突。