取决于项目类型的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)