可以说我有一个mysql表调用用户:
╔════════╦══════════╗
║ Userid ║ Username ║
╠════════╬══════════╣
║ 1 ║ Apple ║
╚════════╩══════════╝
我有一个json文件(
1.json
):{
"Desc": "Hi I am apple",
"Age": 10,<br>
}
我该如何做一些类似的内部连接与php链接这两个数据在一起
╔════════╦══════════╦═══════════════╦═════╗
║ Userid ║ Username ║ Desc ║ Age ║
╠════════╬══════════╬═══════════════╬═════╣
║ 1 ║ Apple ║ Hi I am apple ║ 10 ║
╚════════╩══════════╩═══════════════╩═════╝
还是有更好的方法来构建数据库以进行查询?
这样做的原因是,从长远来看,会有很多记录,并且通过分为json和mysql,这是因为mysql可以让我轻松地搜索数据,并且仅在需要时才检索信息。有人可以告诉我这是最好的方法吗?提前致谢!
最佳答案
如果我正确理解,JSON数据可以是动态的,并且具有多个不同的字段。
直接在SQL / DB中执行此操作的一种方法是使用称为Entity-attribute-value model的方案,该模型例如由wordpress使用以存储自定义动态字段。它提供了很大的灵活性,但效率不是很高。
另一种方法是将JSON数据直接用作额外字段,例如:
╔════════╦══════════╦══════════════════════════════════════════════════╦
║ Userid ║ Username ║ JSON ║
╠════════╬══════════╬══════════════════════════════════════════════════╬
║ 1 ║ Apple ║ {"Desc":"Hi I am apple","Age":"10"} ║
╚════════╩══════════╩══════════════════════════════════════════════════╩
并像这样查询表(例如使用
username=user
和age=10
获取用户)SELECT UserId, UserName FROM Table
WHERE UserName = 'user'
AND JSON LIKE '%"Age":"10"%'
请注意,即使数值也应作为字符串保存在json中,以进行统一处理
如果您的JSON数据不是复杂的或嵌套的,这也很灵活,但是简单的
key-value
对和使用LIKE
(或REGEX
)子句可能是有效的(ps,例如,wordpress也使用此方法,使用php序列化数据而不是JSON数据,但有相同的区别)
关于php - 有没有一种方法可以查询mysql并将内部json数据连接在一起?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34349231/