Hello想知道更好的方法是什么:目标数据库只有大约100,000行
有一张像下面这样的桌子:
AllCars
ID | Car_Name | Car_Model | Car_Type | Car_Features | Car_Location
______________________________________________________________________
1 | Nissan | Ultima Explorer | 4D | Airbag Power | TXSQL: Select 'X' from AllCards where Car_Model LIKE '%ultima%';
或者把它分成几张桌子
Car_Types
ID | Car_Model |
----------------
1 | Nissa Ultima |并编写联接:
SQL:
SELECT'X' from Car_Types c
JOIN AllCars a
ON a.ID = c.ID
WHERE Car_Model = 'Ultima';发布于 2014-12-27 03:37:27
我很困惑。这两个查询并不相同。在一种情况下:
where Car_Model LIKE '%ultima%'在另一个方面:
WHERE Car_Model = 'Ultima'如果您认为'Ultima'是car_model的一个有效值,我建议您将'Ultima'存储在字段中,没有其他内容。也许您应该有一个模型的多部分标识符。
在任何情况下,无论是将原始数据存储在一个表中还是使用引用表--只要您一致地存储该值,都不会有太大的区别。“始终如一”往往导致使用参考表方法,这将是第二种方法。但是,关键是将不同的组件分开,这样您就可以在比较中使用相等,而不是通配符。
发布于 2014-12-27 04:02:16
将数据规范化几乎总是更好。但是,必须确保即使是最频繁的查询也不执行联接。
你的问题没有正确或错误的答案。这都取决于您的用例、您要存储的数据类型、查询的频率以及查询的方式,这意味着最频繁地查询哪些字段。因此,如果您能够提供更多关于查询的性质和频率的详细信息,将会更好。
https://stackoverflow.com/questions/27663997
复制相似问题