我正在创建一个类似于OLX的APP。从服务器端我使用Laravel的流明。我的问题是我无法弄清楚如何将分配的属性存储到广告中。当然我知道有一些方法,但我需要找到最好的方法来使它非常有效。
我有两个想法,而且这两个想法都很糟糕;)
1。为分配给广告的每个属性创建separete行,如:
| id | ad_id | attribute_id | value |
| 1 | 1 | 12 | new |
| 2 | 1 | 17 | wooden|
| 3 | 1 | 123 | 114 |
但是,如果将有数百万个指定的属性
,它似乎会导致将来出现问题 另一方面,2。在尝试按属性过滤广告时,无法轻松搜索序列化值。
| id | ad_id | attribute_value |
| 1 | 1 |a:3:{i:0;a:1:{i:12;s:3:"new";}i:1;a:1:{i:17;s:6:"wooden";}i:2;a:1:{i:123;s:3:"114";}}|
有什么想法吗?
修改
我决定不使用任何多值属性,但我会尝试弄清楚其余的问题:
在遵循一些建议后,我将所有属性分为3组:
1。不可搜索,序列化,直接存储在广告表中 - 似乎是我需要显示的值的最佳选择。
2。,使用3个表格预定义的选择选项:
属性:
id | name | slug | category | type | required | purpose
1 | Color | color | 2 | select | true | both
属性值:
id | attribute_id | value | slug
1 | 23 | Blue | blue
2 | 23 | Red | red
3 | 23 | Green | green
属性关系:
id | attribute_val_id | ad_id
1 | 24 | 54
3. 第三,用户输入的属性值:
属性:
id | name | slug | category | type | required | purpose
2 | Size | size | 234 | input | true | both
自定义属性:
id | attribute_id | value | ad_id
1 | 24 | 2052 | 54
这是最好的方法吗?