[英]Generate dynamic GraphQL Schema
我正在创建一个没有的系统。 表中的列数不固定。 我会用一个例子来解释。
考虑一个有 3 列的人员表。
people
----------
id | name | email
这张表会暴露给一个GraphQL API我可以查询这张表。 在我的系统中,用户将能够向 people 表添加自定义列。 假设他们添加了一个国籍栏。 当他们这样做时,国籍在 API 中将不可用,因为它未在架构中定义。
那么我怎样才能使我的模式动态化,以允许用户使用他们添加的每个额外列来查询 people 表?
我可以查询 information_schema 表或字段表并获取 people 表的额外字段,然后使用 GraphQLObjectType 构建我的模式而不是使用 SDL。
这不是您问题的答案,而是建议,因为在 SQL 中创建动态列对我来说不是一个好主意。 我认为您应该重新考虑您的数据库结构,而不是考虑如何创建动态模式。
与其在Person
表中添加新列,不如为自定义列创建不同的表,例如创建person_columns
表
person_columns
----------
id | people_id | column_name | column_value
因此,对于每个人,您都可以拥有多个列及其相应的值,并且您不必担心动态创建 graphQL 模式。 (根据您的要求,您可以向person_columns
表添加更多列以获得更多控制)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.