如何在Laravel中为两种不同类型的用户提供相同的功能?

时间:2019-06-19 05:41:53

标签: php database laravel database-migration

我想给两种不同类型的用户创建同一事件的能力,但是该事件需要一个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的播放器还是供应商。

请提出一些建议,说明如何解决此问题或以其他方式实施它。

谢谢。

1 个答案:

答案 0 :(得分:0)

存在冲突,检索“事件”实体时您有两个具有相同主键的表,而不是哪个表引用了user_id?因此您可以添加第三个表,称为用户,然后与事件相关联,以减少冲突。