在我的Web应用程序中,我将用户配置文件信息存储在编码的JSON数组中,下面是一个示例。
{"youtube":"username","skype":"username","facebook":"username","twitter":"username","googlep":"username","steam":"username","origin":"username"}
这是不好的做法吗?
答案 0 :(得分:0)
是的,请参阅:Normalizaion您必须在一个字段中存储一个值。而不是多重。
你最好选择第二张表:
user_id | system | username
1 | youtube | the name
.............................
而user_id
是用户表的外键。并且您有一个组合的主键(user_id
,system
)
<强>更新强> 在生产中,正常化标准化水平为3级,因为实现更高的标准化非常困难。当然,由于几个原因(我在这里看不到你的),不规范化表格/模型或其中的部分内容可能是件好事。
答案 1 :(得分:0)
正如Burhan Khalid在评论中所说,这取决于你想要实现的目标。如果您只是存储该数据以便稍后显示它们,这很好。因此,您不会有将数据转换为JSON的开销。顺便说一句,这种技术被称为denormalization。
此类JSON字段的问题是您无法使用SQL进行查询。所以这些数据在某种程度上丢失了。但是,如果您不需要能够搜索该数据,则只需存储它们并在客户端处理数据。
但是如果你需要访问数据,你应该normalize你的数据库。因此,您将能够查询数据,并且必须将结果转换为JSON字符串。函数json_encode()
非常简单。