经验丰富的开发人员,缺乏经验的 DBA。
我目前正在开展一个项目,该项目允许用户输入特定包裹的货运车辆名称。例如:
Company: White Star Line
Vehicle: The Titanic
Vehicle Type: Ship
Run Code Online (Sandbox Code Playgroud)
目前,所有这三个字段都是不受限制的文本字段。因此,除了显示之外,数据对于任何事情都是无用的。如果有人输入与上述完全相同的详细信息,则 DB 无法意识到它与具有完全相同条目的记录是同一艘船。
我们不能将这些字段中的任何一个限制为一组预定义的值(太多潜在条目,需要对任何内容开放),但我想统一一些更常用的值。我想知道这样做的最优雅/最有效的方式。
我目前的思路是添加一组额外的带有“认可公司”和“认可车辆”的数据库表,它们与现有表并行工作。因此,如果用户输入“White Star Line”作为公司,并且“认可公司”表中有一个预先批准的条目,则它会在可选的“recognised_company_id”字段中与该公司建立关联。
类似地,如果用户输入 White Star Line 和“泰坦尼克号”作为船,并且该船有该品牌的条目,则会将关联输入到 recognised_vehicle_id 中。
一些东西:
输入字段的自动完成有望消除相同品牌/车辆的一些拼写错误/语法差异。
查看现有表的重复计数可以帮助确定应手动添加哪些已识别的公司/车辆。
这远不是一个漂亮的解决方案,但它是我所拥有的最好的解决方案。我猜这是人们必须经常做的事情,我只是想知道 - 有没有更优雅的方法来实现我想要实现的目标?解决此类问题的任何经验法则?
提前致谢
一种可能性是构建您当前拥有的值的列表,并让用户从该列表中进行选择,或者单独输入以将其添加到列表中。
我一直在各种网络界面中执行此操作 - 例如,当我需要通过网上银行支付账单时,我首先必须创建一个收款人。当我只支付一次性账单时,我诅咒这一点,但我喜欢每次支付汽车付款、抵押贷款付款或支付电费时都不必输入我的帐号和其他详细信息 - 只需第一次时间。
这也将减少“几乎”重复的噪音,例如,如果一个人拼写为 Weber's,另一个人拼写为 Webbers,希望第二个用户只会使用第一个,即使他们认为它不正确(并且如果他们都是错了,您仍然只需纠正一行)。
如果你让用户看到长期的好处,就不应该因为前期的痛苦而尖叫。
归档时间: |
|
查看次数: |
107 次 |
最近记录: |