我的客户在注册我的申请时会使用以下其中一项:
@H_301_2@> Foo API(需要“auth_key”,“密码”,“电子邮件”)
> Acme API(需要“secure_code”,“用户名”,“密码”)
> Bar API(需要“xyz_code”,“pass_key”) @H_301_2@(假名,为简单起见省略了15个) @H_301_2@我不希望在我的数据库中只有10-15个表用于我提供的不同API集成选项(特别是当它们全部用于相同的事情并且他们只从整个列表中选择1时). @H_301_2@我的解决方案是: @H_301_2@使用名为api_name的列创建api_configuration表,该列包含特定API的代码(例如“foo_api”) @H_301_2@创建一个名为credentials_attribute的表,使用外键返回api_configuration,名为name的列和名为value的列. @H_301_2@然后我构建了一个用于选择API的UI.如果他们选择Acme API,它将要求“secure_code”,“username”和“password”,并在credentials_attribute中为每个名称/值对创建一行. @H_301_2@在我的api_configuration的ORM模型上,我可以创建一个方法,根据当前的api_name查找credentials_attribute值. @H_301_2@如果你不得不为这个问题建模解决方案,这个解决方案是否正确,或者是否有另一种方法可以做到?请解释你的理由(即,更好的表现等)
> Acme API(需要“secure_code”,“用户名”,“密码”)
> Bar API(需要“xyz_code”,“pass_key”) @H_301_2@(假名,为简单起见省略了15个) @H_301_2@我不希望在我的数据库中只有10-15个表用于我提供的不同API集成选项(特别是当它们全部用于相同的事情并且他们只从整个列表中选择1时). @H_301_2@我的解决方案是: @H_301_2@使用名为api_name的列创建api_configuration表,该列包含特定API的代码(例如“foo_api”) @H_301_2@创建一个名为credentials_attribute的表,使用外键返回api_configuration,名为name的列和名为value的列. @H_301_2@然后我构建了一个用于选择API的UI.如果他们选择Acme API,它将要求“secure_code”,“username”和“password”,并在credentials_attribute中为每个名称/值对创建一行. @H_301_2@在我的api_configuration的ORM模型上,我可以创建一个方法,根据当前的api_name查找credentials_attribute值. @H_301_2@如果你不得不为这个问题建模解决方案,这个解决方案是否正确,或者是否有另一种方法可以做到?请解释你的理由(即,更好的表现等)