取决于项目类型的Laravel雄辩关系

取决于项目类型的Laravel雄辩关系,laravel,eloquent,laravel-eloquent,Laravel,Eloquent,Laravel Eloquent,我有型号产品,它有两种类型:灯和灯泡。一盏灯有一组不同于灯泡的属性,因此我有另外两种型号lamp和bulb,它们代表一组属性。在这种情况下,我应该实现从产品到属性模型的哪种类型的关系 我一直在尝试一对一的关系,但在我的情况下,第二个“一”与产品类型不同 我一直在考虑EAV模式,但我现在不想在我的体系结构中加入太多的连接,因为我只需要这两种类型的项目 你有什么建议 UPD1:以下是表格(简化): UPD2:我知道我可以在products表中使用两个外键,并且每个记录只能设置一个外键,但是对于这种情

我有型号
产品
,它有两种类型:
灯泡
。一盏灯有一组不同于灯泡的属性,因此我有另外两种型号
lamp
bulb
,它们代表一组属性。在这种情况下,我应该实现从产品到属性模型的哪种类型的关系

我一直在尝试一对一的关系,但在我的情况下,第二个“一”与产品类型不同

我一直在考虑EAV模式,但我现在不想在我的体系结构中加入太多的连接,因为我只需要这两种类型的项目

你有什么建议

UPD1:以下是表格(简化):


UPD2:我知道我可以在products表中使用两个外键,并且每个记录只能设置一个外键,但是对于这种情况是否有更优雅的方案?

您的表是为此设置的?Ross,请参阅更新。您的表是为此设置的吗?Ross,请参阅更新。
mysql> show columns from products;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| name        | varchar(127) | NO   |     | NULL    |                |
| price       | double       | NO   |     | NULL    |                |
| old_price   | double       | NO   |     | NULL    |                |
| category_id | int(11)      | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

mysql> show columns from lamps;
+------------+---------+------+-----+---------+----------------+
| Field      | Type    | Null | Key | Default | Extra          |
+------------+---------+------+-----+---------+----------------+
| id         | int(11) | NO   | PRI | NULL    | auto_increment |
| product_id | int(11) | NO   |     | NULL    |                |
| width      | int(11) | NO   |     | NULL    |                |
| height     | int(11) | NO   |     | NULL    |                |
| length     | int(11) | NO   |     | NULL    |                |
| weight     | int(11) | NO   |     | NULL    |                |
+------------+---------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

mysql> show columns from bulbs;
+------------+---------+------+-----+---------+----------------+
| Field      | Type    | Null | Key | Default | Extra          |
+------------+---------+------+-----+---------+----------------+
| id         | int(11) | NO   | PRI | NULL    | auto_increment |
| product_id | int(11) | NO   |     | NULL    |                |
| voltage    | int(11) | NO   |     | NULL    |                |
| power      | int(11) | NO   |     | NULL    |                |
| base       | int(11) | NO   |     | NULL    |                |
| type       | int(11) | NO   |     | NULL    |                |
+------------+---------+------+-----+---------+----------------+
6 rows in set (0.00 sec)