我刚刚开始开发一个发票应用程序。我想听听你对这个困境的看法和建议。
发票有一个客户部分。客户端可以从下拉选择菜单中选择,也可以直接输入到文本字段中。假设这只是一次购买,客户永远不会再回来。我是否应该有这两列: client_id和client_field,以便这两列中的任何一列都可以填充?消极的一面是很多client_field将是空的。或者我不应该使用client_field,而只是添加一个新的客户端,即使该客户端只会被使用一次?
发布于 2011-10-05 00:49:45
保持一致,使用单独的客户端模型和client_id,即使对于只出现一次的客户端也是如此。如果你同时拥有client_id和client_model,你将会有额外的复杂性:
为了显示数据,您的验证必须同时检查两者并确保所有内容都正确无误。
client_field杂凑。
< o.client.try(:name) || o.client_field >F214
这些只是我脑海中浮现的几件事。
如果你担心有一个有很多条目的下拉列表-你应该担心有超过20个条目的下拉列表-那么只使用自动完成文本输入,或者将下拉列表限制到前20个客户端,对其余的使用自动完成文本输入(或者甚至是基于JavaScript的组合框);用户、会计和其他进行大量数据输入和开票的人很可能不会使用下拉列表。
发布于 2011-10-04 23:37:37
如果在没有匹配ID的情况下提交自动完成字段,您只需创建客户端并将其链接进来,这有什么错吗?
这是从用户的角度所期望的,也是像QuickBooks这样的应用程序多年来的工作方式。
https://stackoverflow.com/questions/7650406
复制相似问题