我有应用程序,用户可以创建/更新有关不同对象(公寓,房间,房屋,土地等)的信息。
每种类型的对象都有不同的参数集。
我看到解决方案:
将所有信息存储在一个表格中
id,title,object_type,rooms_count,house_floors_count,land_area,flat_area, description, etc..
优点:快速搜索(因为每列都有正确的数据类型,rooms_count - 整数,说明 - 文字)
缺点:巨大的非规范化
将信息存储在不同的表中
对象:id,title,object_type,price
object_params:id,param_title,param_type(整数,文本,浮点数等)
object_param_values:id_param,id_object,value(类型text
的列)
优点:非规范化,前端保证在object_type='flat'
时,只有flat
的参数会显示给用户(在1.
中,它也会像这样工作)
缺点:value
中的object_param_values
类型为text
,这对速度有害。
答案 0 :(得分:0)
还有第三个选项,使用两个表。
一个用于存储对象基础知识的表: id,title,object_type
另一个存储参数的表: id,object_id(来自上一个表),参数,数据