数据库设计-自定义和预定义属性

ih99xse1  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(380)

我正在创建一个应用程序,类似于olx。从服务器端我用的是拉威尔的流明。我的问题是,我不知道如何存储分配属性的广告。当然,我知道有很多方法,但我需要找到最好的方法,使它非常有效。
我有两个想法,而且似乎都不好;)
1为分配给广告的每个属性创建单独的行,如:

  1. | id | ad_id | attribute_id | value |
  2. | 1 | 1 | 12 | new |
  3. | 2 | 1 | 17 | wooden|
  4. | 3 | 1 | 123 | 114 |

但它似乎会导致未来出现问题,届时将有数百万人被分配属性
2另一方面,创建序列化值不容易搜索,同时尝试按属性过滤广告。

  1. | id | ad_id | attribute_value |
  2. | 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不可搜索,序列化,直接存储在ads表中-似乎是我只需要显示的值的最佳选择。
2使用3个表进行预定义选择:
属性:

  1. id | name | slug | category | type | required | purpose
  2. 1 | Color | color | 2 | select | true | both

属性值:

  1. id | attribute_id | value | slug
  2. 1 | 23 | Blue | blue
  3. 2 | 23 | Red | red
  4. 3 | 23 | Green | green

属性关系:

  1. id | attribute_val_id | ad_id
  2. 1 | 24 | 54

三。三是用户输入的属性值:
属性:

  1. id | name | slug | category | type | required | purpose
  2. 2 | Size | size | 234 | input | true | both

自定义属性:

  1. id | attribute_id | value | ad_id
  2. 1 | 24 | 2052 | 54

这是最好的方法吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题