Php 在数据库中存储MYSQL选项和值的最有效方法

Php 在数据库中存储MYSQL选项和值的最有效方法,php,mysql,Php,Mysql,我在MYSQL数据库中存储大量选项和值,然后将它们分配给属性的最佳实践中遇到了麻烦。我通常这样做的方式(例如房地产)是创建一个名为“pool”的表,然后用一个自动递增值作为ID,用一个varchar存储值,在本例中为“地上”,另一行为“地上”。然后,在我的属性表中,我将为“has_pool”指定一列,并从“pool”表中指定适当的ID值。很明显,问题是每个属性有数百个选项(壁炉、水景等),我的数据库表数量将变得非常大、非常快,我的左连接将在前端失去控制 有人能给我指出一个正确的方向吗?最好的做法

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


有人能给我指出一个正确的方向吗?最好的做法是如何轻松地为属性属性填充新值,并将查询计数保持在最小值?我觉得有一个简单的解决办法,但我的研究到目前为止还没有让我明白。谢谢大家!

我会将所有序列化的值(例如JSON、XML或YAML)存储到blob中,然后为我想要搜索的属性定义反向索引表

我在演讲中描述了这种技术和备选方案


另请参见

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

创建另一个名为“菜单”的表,其中包含两个字段;身份证和姓名


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

可能是一个位字段,或者将信息存储为json数组,如果您希望它更具可读性的话。谢谢,这证实了我的想法。至于为每个特定属性指定正确的值,我认为最好的方法是有一个“property\u options”表,该表有:id(自动递增),property\u id,menuID,option\u id?再次感谢!嗯..不确定您是否需要property\u options表,只需将所有选项放在“options”表中,并确保menuID引用了正确的类别。这就是您的意思吗?谢谢比尔。这个答案有点超出了我正在寻找的范围(或者可能是我目前的能力)但我非常感谢您的回复,并将这些链接添加到书签中,以便以后进一步了解。