让我们以一个拥有 100.000 个用户的约会网站为例。每个用户有大约 30 个属性,如头发颜色、吸烟、年龄、城市、性别……一些属性是 bool、一些 int 和一些 var 或 text。
其中大约 20 个属性是可搜索的,一半的用户不填写数据。所有值都显示在用户个人资料页面上。
我在考虑以下选项:
- 将数据拆分为 4 个表。表 1 用于搜索最多的数据,表 2 用于大部分未填充的属性,表 3 用于像 about me 这样的大数据,以及表 4 的其余部分。
- 大多数属性都有单独的表,因此每个属性都有自己的表。
- 使用 EAV 模型。
我认为第一个选项是最好的。或者有没有其他更好的方法?