【发布时间】:2017-02-12 08:41:20
【问题描述】:
有一个称为“兴趣”的能力,其中包含每个用户感兴趣的“类别”和/或“品牌”的 ID。
为了防止为user_category_interests 和user_brand_interest 创建两个单独的表,我添加了一个名为type 的枚举列。
现在我不知道应该如何在 Schema Builder 中创建迁移,如何设置关系和外键,...以利用 Eloquent 方法。
Schema::create('user_interests', function (Blueprint $table) {
$table->increments('id');
$table->enum('type', ['categories', 'brands']);
$table->integer('reference_id')->unsigned();
$table->timestamps();
});
有没有更好的方法来代替创建两个单独的表和模型?
附:我使用 laravel 5.4
Brands Table:
id | name
-----------
1 | Adidas
2 | Nike
3 | Puma
Categories Table:
id | name
-----------
1 | Clothes
2 | Luxury
3 | Sport Wear
User_Interests Table:
id | user_id | type | reference_id
-----------------------------------------
1 | 113 | 'brand' | 2
1 | 113 | 'brand' | 3
2 | 113 |'category'| 3
3 | 224 | 'brand' | 1
【问题讨论】:
标签: laravel eloquent laravel-schema-builder