假设我在RDBMS中有两个表,它们试图根据不同的密钥规范建模存储和检索相同的数据。 Table1将整个密钥存储在一个char列中,Table2将密钥存储在多个列中,如下所示:
表1:key = String,value = Data
表2:col1 = String,col2 = String,value = Data
Table1键包含与col1和col2的组合相同的信息,以及可能的分隔符,例如。 key =“NASDAQ / SUNW”,col1 =“NASDAQ”,col2 =“SUNW”
我对高效数据检索感兴趣。使用Table1会比Table2更有效吗?
答案 0 :(得分:2)
如果您的密钥包含多个值,则应将它们分隔为单独的列。这样,如果需要,您可以单独索引它们,例如,如果您需要能够按第二个值过滤结果集(在您的示例中,假设您需要使用SUNW查找所有记录)。
根据经验,如果您发现自己将逗号分隔的值放入单个数据库列中,那么您可能会做错事。