我试图在可搜索性和速度之间取得很好的平衡。我正在尝试不同的方法。
选项 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)