如何解决生成动态GraphQL模式
我正在创建一个系统。表中的列数不固定。我会举例说明。
考虑包含3列的人员表。
people
----------
id | name | email
该表将向GraphQL API公开,我可以查询该表。在我的系统中,用户将能够将自定义列添加到人员表。假设他们添加了“国籍”列。当他们这样做时,国籍将在API中不可用,因为在架构中未定义国籍。
那么,如何使我的架构动态化,从而允许用户使用添加的每一列来查询人员表?
解决方法
这不是您问题的答案,而是 建议 ,因为在SQL中创建动态列对我而言不是一个好主意。与其思考如何创建动态模式,不如我应该重新考虑数据库结构。
与其在Person
表中添加新列,您还应为自定义列使用不同的表,例如创建person_columns
表,例如
person_columns
----------
id | people_id | column_name | column_value
因此对于每个人来说,您都可以拥有多个列及其对应的值,而您不必担心动态创建graphQL模式。 (根据您的要求,您可以向person_columns
表中添加更多列以进行更多控制)
我可以查询information_schema表或fields表并获取people表的其他字段,然后使用GraphQLObjectType来构建我的架构,而不是使用SDL。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。