这可能是一个奇怪的问题。
我正在构建一个动漫/漫画数据库应用程序,我目前面临一个相对较小的问题 - 我有两个模型,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实例。另外,我必须为每个关系创建两行。
有没有办法更好地做到这一点,最好保留两个表(我知道如果我将动漫和漫画合并到同一个表中,这可以很容易地完成),因为他们没有相同的列?
感谢。