为棱柱数据模型中的数组字段定义是否需要

Define required or not for array fields in the prisma datamodel

下面的区别是什么。什么时候用一个代替另一个?

zones: [Zone]
zones: [Zone!]
zones: [Zone]!
zones: [Zone!]!

这可以总结为基于定义的 table 个允许值:

values         | [Zone] | [Zone!] | [Zone]! | [Zone!]! |
--------------------------------------------------------
null           |    ✔   |    ✔    |    X    |     X    |
[]             |    ✔   |    ✔    |    ✔    |     ✔    |
[null]         |    ✔   |    X    |    ✔    |     X    |
["a","b"]      |    ✔   |    ✔    |    ✔    |     ✔    |
["a",null,"c"] |    ✔   |    X    |    ✔    |     X    |

大多数时候,您需要使用 [Zone!]!,因为它确保不会在您的数组中找到空值。