-1

在我的 Web 应用程序中,我将用户个人资料信息存储在一个编码的 JSON 数组中,下面是一个示例。

{"youtube":"username","skype":"username","facebook":"username","twitter":"username","googlep":"username","steam":"username","origin":"username"}

这是不好的做法吗?

4

2 回答 2

0

是的,请参阅:规范化您必须在一个字段中存储一个值。而不是多个。

您最好使用第二张桌子,例如:

user_id   |  system   | username
   1      |  youtube  | the name
 .............................

whileuser_id是用户表的外键。并且您有一个组合的主键 ( user_id, system)

更新 在生产中,正常的标准化水平是 3 级。因为实现更高的标准化非常困难。当然,由于几个原因(我在这里看不到你的),最好不要规范化表/模型或其中的一部分。

于 2013-04-28T11:21:08.187 回答
0

正如 Burhan Khalid 在他的评论中所说,这取决于你想要实现什么。如果您只是存储该数据以便稍后显示它们,这很好。因此,您不会有将数据转换为 JSON 的开销。顺便说一下,这种技术称为非规范化

这种 JSON 字段的问题是您无法使用 SQL 查询它。所以这些数据以某种方式丢失了。但是,如果您不需要能够搜索该数据,您可以简单地存储它们并在客户端处理数据。

但是,如果您需要访问数据,您应该规范化您的数据库。因此,您将能够查询数据,并且必须将结果转换为 JSON 字符串。这对于函数来说非常简单json_encode()

于 2013-04-28T11:21:52.070 回答