具有不同增量值的两个表之间的Laravel关系

时间:2015-01-03 02:09:39

标签: php mysql laravel eloquent relation

这可能是一个奇怪的问题。

我正在构建一个动漫/漫画数据库应用程序,我目前面临一个相对较小的问题 - 我有两个模型,Anime和Manga,每个都代表他们自己在数据库中的表(显然)。但是,我需要的是第三个表,它指定了这两者之间的任何关系。

我的' pivot'表格如下:

Schema::create('related_items', function(Blueprint $table)
{
    $table->increments('id');
    $table->integer('item_id')->unsigned();
    $table->integer('related_id')->unsigned();
    $table->string('relation', 16);
    $table->char('item_type', 5);
    $table->char('related_type', 5);
    $table->timestamps();
});

然而,主要的问题是动漫可能与另一部动漫或漫画相关,反之亦然。我无法想出一个比这个更好的解决方案,这个表中的行的例子是:

id: 1
item_id: 1
related_id: 2
relation: adaptation
item_type: anime
related_type: manga

AND:

id: 2
item_id: 2
related_id: 1
relation: source
item_type: manga
related_type: anime

我对此并不太满意。首先,我无法在两个模型中的任何一个中使用它 - 我必须创建一个全新的RelatedItem实例。另外,我必须为每个关系创建两行。

有没有办法更好地做到这一点,最好保留两个表(我知道如果我将动漫和漫画合并到同一个表中,这可以很容易地完成),因为他们没有相同的列?

感谢。

0 个答案:

没有答案