我正在开发网站,其中将分类广告。在每个类别中都可能有不同的输入字段(例如:对于汽车将有电机尺寸,对于猫将会有一场比赛)。所以我在考虑如何构建数据库来管理它(我将使用MYSQL数据库)。你可以在附图中看到的一种方法,我知道也是为每个值数据表创建表的解决方案,但我想知道它会减慢网站的速度。图中的此解决方案将在sp_advertisement_value表中生成空字段,这也是不好的。
您认为最佳解决方案是什么?也许还有其他的东西? 附:这是指向database market的链接。
答案 0 :(得分:1)
您可以将其存储为名称/值对(与您附加的图像中描述的内容大致相同)。
一个简单的模式是一个有两列名称和值的表。而不是像value_int,value_string等每个数据类型都有一列,只有一个列值,其数据类型可以是varchar(或者看起来适合你的Text)。您可以根据需要在应用程序代码中进行所有数据转换。
您也可以在这里进行一些规范化,例如,不是保存名称,您可以创建一个名为具有id,name和其他相关信息的参数的单独查找表,并在表中存储参数值的参数值。