我正在编写服务器应用程序。许多用户将连接到此服务。应用程序将每个用户的配置文件数据存储到MySQL DB。我不是数据库方面的专家,所以在这里提出这个问题。
个人资料有很多字段。最直接的方法是在数据库表中为每个字段中的每个字段添加一列。
但我不确定这是否是最佳做法。将来,如果配置文件中添加了更多字段,则必须更改表模式。此外,对于配置文件中的许多字段创建那么多列(只是为了存储配置文件数据+表中会有许多其他列用于许多其他数据)会使表格混乱。
作为替代方案,我可以考虑将所有配置文件数据存储在一列中。但不知道该怎么做。特别是在单列分界字段中将是具有挑战性的。有没有办法在MySQL中创建嵌套列?
还有其他更好的选择吗?
答案 0 :(得分:1)
拥有多列配置文件或单列配置文件都有效,但这取决于您查询数据的方式。
如果您需要在数据库端查询您的配置文件信息(即使用SQL),您应该选择多列配置文件。
如果您从不(我强调永远不会故意),您可以选择单列配置文件。但在这种情况下,这意味着你永远不能查询信息,甚至连同一个表上的连接都不能查询。
我会选择多列,因为您永远不知道将来需要什么。
答案 1 :(得分:1)
Oracle支持嵌套表:
http://www.orafaq.com/wiki/NESTED_TABLE,但我不推荐它,因为它会破坏First Normal Form (1NF)
每个行 - 列交集都只包含适用域中的一个值(没有别的)。