0

我在我的 MYSQL 数据库中存储大量选项和值然后将它们分配给属性的最佳实践中遇到了麻烦。我通常这样做的方式(例如房地产)是创建一个名为“pool”的表,然后有一个自动增量值作为 ID 和一个 varchar 来存储该值,在本例中为“Above Ground”和另一行“地下”。然后在我的属性表中,我将有一个“has_pool”列,其中分配了“pool”表中的正确 ID 值。显然,问题在于每个属性都有数百个选项(壁炉、水景等),我的数据库表数量将变得非常大、非常快,而我的左连接将在前端变得失控。

有人可以指出正确的方向,最佳实践是轻松填充属性属性的新值并将查询计数降至最低吗?我觉得有一个简单的解决方案,但到目前为止我的研究并没有让我明白。谢谢!

4

2 回答 2

0

我会将所有序列化的值(例如 JSON 或 XML 或 YAML)存储到一个 blob 中,然后为我希望可搜索的属性定义倒排索引表。

我在我的演讲Extensible Data Modeling with MySQL中描述了这种技术和替代方案。

另请参阅http://bret.appspot.com/entry/how-friendfeed-uses-mysql

于 2013-08-28T14:49:02.247 回答
0

一种方法是创建一个包含四列的“选项”表:id、menuId、value

创建另一个名为 menus 的表,其中包含两个字段;身份证和姓名。

将菜单名称(游泳池、壁炉等)添加到菜单表中,然后将可能的值添加到选项表中,包括与其相关的菜单的 ID。

于 2013-08-28T14:51:08.793 回答