0

我有一个如下所示的 mysql 表:

id
some_field1
some_field2
variable_fields
datetime
...

现在我想在 variable_fields 中存储超过 1 个值,如下所示:

user_id:5;message_id:10

我不为要存储的每个值创建单独的字段的原因是这些值在整个项目中都不同。所以我在项目中存储了不同的值。有时variable_fields包含此值:

user_id:5;message_id:10

而在其他时候它包含这个值:

car_id:56;payment_id:45

这不会是一个大问题,但我希望能够在这个领域进行搜索。所以像:variable_fields LIKE '%payment_id:45%'.

这显然需要 mysql 的时间。有没有另一种方法来处理这个而不是为每个值创建一个字段?那么mysql中的某种动态字段?

我很高兴得到各种帮助。先感谢您!

此致,

弗雷迪

4

1 回答 1

0

如果您将添加 myisam 全文索引或在该列上使用任何其他全文工具(例如 sphinx、lucene),那么您描述的那些搜索将工作得更好,但这不是可取的。

我建议将动态元数据按情况划分为不同的表,并在主表中保留一个 type_id,或者保留默认设置为 NULL 的所有选项的列。真的取决于是否有一个简单的划分,或者这是否真的是动态的并且随着时间的推移而变化。如果您将数据放入多个表中,根据 type_id 的 JOIN 将能够通过这些特定字段值进行查询。请务必在两个表中的共同 id 上创建索引。

于 2013-04-22T10:10:07.333 回答