小编tec*_*nce的帖子

如何在关系数据库中有效地存储无模式数据?

我试图在可搜索性和速度之间取得很好的平衡。我正在尝试不同的方法。

选项 1:将数组序列化为 JSON/PHP 序列化数组并将其存储在“元”列中。

   id  |  name   | meta  
1       Bob       {"city":"GoTown","birthdate":"1980\/8\/14","cat":"Felix"}
2       Alice     {"city":"Streamville","birthdate":"1986\/6\/6","dog":"Rex"}
Run Code Online (Sandbox Code Playgroud)

选项 2:将键和值一起存储在堆栈中。

user_id  |    key   |   value   
1         name       Bob
1         city       GoTown
1         birthdate  1980/8/14
1         cat        Felix
2         name       Alice
2         city       Streamville
2         birthdate  1986/6/6
2         dog        Rex
Run Code Online (Sandbox Code Playgroud)

选项 3:3 个表:实体、键、值。每个键名只存储一次。

user_id  |   name   
1         Bob
2         Alice

key_id   |   keyname   
1         city
2         birthdate
3         cat
4         dog

user_id   |   key_id   |   value
1          1            GoTown
1          2            1980/8/14
1 …
Run Code Online (Sandbox Code Playgroud)

mysql schema database-design

7
推荐指数
1
解决办法
6668
查看次数

标签 统计

database-design ×1

mysql ×1

schema ×1