一列键还是多列键?
One column key or multiple column key?
假设我在一个 RDBMS 中有两个表,它们试图根据不同的键规范对相同数据的存储和检索进行建模。表 1 将整个键存储在单个字符列中,表 2 将键存储在多个列中,如下所示:
表 1:键=字符串,值=数据
表 2:col1=字符串,col2=字符串,值=数据
Table1 键包含与 col1 和 col2 的组合相同的信息,加上可能的分隔符,例如。 key="NASDAQ/SUNW", col1="NASDAQ", col2="SUNW"
我对高效的数据检索很感兴趣。使用 Table1 会比 Table2 更有效吗?
如果您的键包含多个值,您应该将它们分成单独的列。这样你就可以在需要时单独索引它们,例如如果您需要能够按第二个值过滤结果集(在您的示例中,假设您需要使用 SUNW 查找所有记录)。
根据经验,如果您发现自己将逗号分隔值放入单个数据库列中,则您可能做错了什么。
假设我在一个 RDBMS 中有两个表,它们试图根据不同的键规范对相同数据的存储和检索进行建模。表 1 将整个键存储在单个字符列中,表 2 将键存储在多个列中,如下所示:
表 1:键=字符串,值=数据
表 2:col1=字符串,col2=字符串,值=数据
Table1 键包含与 col1 和 col2 的组合相同的信息,加上可能的分隔符,例如。 key="NASDAQ/SUNW", col1="NASDAQ", col2="SUNW"
我对高效的数据检索很感兴趣。使用 Table1 会比 Table2 更有效吗?
如果您的键包含多个值,您应该将它们分成单独的列。这样你就可以在需要时单独索引它们,例如如果您需要能够按第二个值过滤结果集(在您的示例中,假设您需要使用 SUNW 查找所有记录)。
根据经验,如果您发现自己将逗号分隔值放入单个数据库列中,则您可能做错了什么。