我有一个我正在尝试“标准化”的数据表。输入到表格中的数据不是静态的或标准化的(就像答案的下拉列表一样),给我留下了多种答案,我想要一个静态的、通用的答案。
例如,假设数据库中有一个名为“宠物类型”的列。由于用户输入没有标准化,人们可以输入特定类型宠物的变体,而不是宠物的一般形式。因此,不仅仅是输入“Dog”,还有不同版本的狗,如“Collie”、“Mutt”、“Labrador”等。
我该如何将这些答案转录成它们的通用形式——用“狗”(或“猫”或“鸟”等)替换表中的柯利/穆特/拉布拉多/等答案?
我意识到需要某种形式的手动输入“翻译”功能。我的直觉反应是,一个长跨度的堆叠 if 语句列表效率低下,并且难以控制和扩展。
是否有某种流程或系统可以做这样的事情?像某种类型的查找表系统/矩阵?
我假设一个 foreach 循环遍历记录数组是最合适的。然后在 foreach 循环的每次迭代中,你会让它对 pet 变量与某种类型的列表(我会手动创建)进行测试/比较——但是你会使用这个查找表/列表? 还是流程的这一步?您会将它作为某种类型的 SQL 数据库/表、数组、CSV 文件等吗?
然后,一旦这个比较完成并确定了宠物类型的“翻译”等价物,foreach 循环将更新记录的特定行,或者覆盖旧的非标准化值,或者只是添加新的标准化值等效于一个新列(供以后验证)。