我有一个不动产属性表,其中不动产属性的特征存储在序列化数组中。例如,一栋房子可以有wifi、游泳池、花园等各种功能。这些特性形成一个列表、带有值的数组,并被序列化并存储在名为features的表列中。当我必须显示这些特性时,我会获取序列化数组,将其取消序列化并显示出来。现在,用这张桌子,我怎样才能找到一个有无线网络和游泳池的房子?其次,在搜索超出范围之前,这种结构是好的,但是如果有很强的理由,除了搜索之外,我愿意修改它。
更新
wifi功能可以拼写为“wifi”或“wifi可用”或“配备wifi”或任何内容。所以wifi是一个关键词,而且功能实际上是由业主输入的,所以类似的功能可能会有所不同。因此,我们的想法是将特性保存在一个系列化数组中
最佳答案
PHPs serialize format(或JSON)在SQL中不是本机数据类型。但以XML为例。但这也常常是过度杀戮。
独立表方法的另一种选择是现有特性的CSV列表(由于FIND_IN_SET
,这是SQL的原生特性)。
否则,当您希望保留序列化的数据blob时,可以使用一些猜测来预先筛选搜索查询。(您需要知道您正在处理的每个属性的确切序列化方案。)
对于与数据库无关的数据集,我甚至认为是合适的。但由于您使用DB主要用于搜索数据块,所以您应该重新考虑。
关于php - 搜索存储在数据库中的序列化值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7226288/