可以说我有一个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=userage=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/

10-14 13:55
查看更多