如何使外键成为必需?

Posted

技术标签:

【中文标题】如何使外键成为必需?【英文标题】:How to make foreign key required? 【发布时间】:2016-01-16 06:21:42 【问题描述】:

对于文档中给出的模型示例,我注意到您可以创建 pet 对象而不需要 owner。如何在 JSON 中指定 owner 是必需的?

我从“字段”选项卡中看到了必填开关,但是当我单击它时,该开关没有移动。

[
  
    "name": "pets",
    "fields": 
      "name": 
        "type": "string"
      ,
      "owner": 
        "object": "users"
      
    
  ,
  
    "name": "users",
    "fields": 
      "email": 
        "type": "string"
      ,
      "firstName": 
        "type": "string"
      
      "pets": 
        "collection": "pets",
        "via": "owner"
      
    
  
]

【问题讨论】:

【参考方案1】:

目前在 JSON 中,外键不支持必填字段,但您可以解决它。我来自 Backand,我们实际上计划很快添加它,但同时您可以这样做:

    在“pets”对象的Before Create和Before Update事件中添加服务器端Action并检查null值,清空抛出错误。使用以下代码:

    try
        if (userInput.items == null)
            throw new Error('must have owner');
        
    
    catch(err)
        throw new Error('must have owner');
    
    其他选项是直接访问 mysql 数据库并将列设置为 NOT NULL。完成后打开宠物对象页面并单击“与数据库同步”。它不会在 Backand 中显示任何指示,但会完成工作。

【讨论】:

感谢您的回答。期待 JSON 的支持。

以上是关于如何使外键成为必需?的主要内容,如果未能解决你的问题,请参考以下文章

C# Linq 将外键与内键反转为以字典为值的字典

识别和非识别关系之间有什么区别?

一组外键,其中除了一个之外都是 NULL

外键限制可以成为安全利益和/或风险吗?

问题 Datagridview 和外键和主键列

如何在django中上传csv文件的函数中使用外键连接模型?