我正在开发一个应用程序,使用户能够配置网关(如 PayPal、Authorize.net 等)来处理特定的活动,但是,每个网关都有特定的字段,这些字段彼此不同。
在创建与特定活动一起使用的自定义 GatewayConfiguration 期间,字段的值是用户唯一可以更改的内容。
我已经阅读了它,并发现这样做的一个好方法是为字段设置一个表,并为这些字段的值设置另一个表。像这样的东西:
------------ -- 网关表 ------------ ID 1 -------- -- 网关字段表 -------- id、gatewayId、名称、标签 1, 1, '用户名', '网关用户名' 2, 1, '密码', '网关密码' 3, 1, 'apiurl', '网关 API URL' ------------ -- 网关配置表 ---------- id, 网关 ID 1, 1 -------- -- GatewayFieldValue 表 -------- gatewayConfigurationId、fieldId、值 1, 1, '一些用户' 1, 2, 'somePass' 1, 3, 'someUrl'
网关没有太多,也不会改变太多,因为用户不能添加新的网关,只使用现有的,因此,GatewayField 也不会改变。
我这样做不是让事情复杂化吗?将所有网关放在一个表上并使用例如 JSON 字段来定义此网关接受哪些自定义字段,并在 GatewayConfiguration 上使用另一个 JSON 编码字段来设置自定义字段的值不是更好吗? 有更好的解决方案吗?