生成动态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。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...