让我们以一个拥有100.000个用户的约会网站为例。每个用户都有大约30个属性,如头发颜色,吸烟,年龄,城市,性别......一些属性是bool,一些是int,一些是var或text。
这些属性中约有20个是可搜索的,有一半用户没有填充数据。所有值都显示在用户个人资料页面上。
我在考虑以下选项:
我认为第一种选择是最好的选择。或者还有其他更好的方法吗?
答案 0 :(得分:0)
假设您不需要添加新属性,那么您可能只需将所有内容放在一个大表中即可。 DBMS通常在存储NULL方面非常有效。索引NULL也应该是合理的,有些DBMS甚至不在索引(Oracle)中包含NULL。
也不要害怕BLOB - 他们倾向于“拉伸”行(如果BLOB的一部分在行中排成行,通常可以用DBMS特定的方式控制),降低你的“数据聚类“,但这不应该对你的目的太重要。
在决定最自然的解决方案不够高的情况下,衡量代表性的数据量。