如何在mysql表中存储多个值

时间:2018-03-13 17:56:40

标签: mysql

这可能是一个愚蠢的问题,但我希望有人有答案或想法如何解决我的问题。我有cdr' s /呼叫详细记录,这些记录存储在xml文件中,并且基于每次呼叫看起来不同的呼叫类型。 例如

<Features> 
<Feature>UnconditionalCallForwarding</Feature> 
<Feature>LegPartOfForwardedCall</Feature> 
</Features>

此调用有2个功能在通话时使用,但它可能是3或甚至4.我不会创建一个单独的表来存储呼叫的功能,因为插入额外的记录也是一个性能问题,以清理那些记录被回收后的表格。我们每天在这里谈论100万条+记录,因此性能是一个问题。 所以我想知道将列表存储在带有某种分隔符的txt中是否有意义,我可以在sql查询中轻松解析它。

1 个答案:

答案 0 :(得分:3)

使用多个表格。不要在sql字段中存储分隔文本,它会破坏关系表结构的目的,并创建额外的工作。

你拥有的是一对多的关系。处理它的最好方法是有第二个表。试试这个例子:

表:CallFeatures 列:Id,CallId,FeatureName

使CallId成为Calls表的外键。然后,您只需在查询调用时加入表格即可获取功能。

注意:如果在执行JOIN查询时有多个功能,则会获得多行。如果要格式化报告或其他输出格式的结果,则需要进一步调查。这只是一种解析和存储功能的方法。