【问题标题】:How to handle Foreign key for optional field in .NET如何处理.NET中可选字段的外键
【发布时间】:2010-03-23 09:11:50
【问题描述】:

处理以下情况的最佳方法是什么?

下拉列表(用于主表)在特定形式中是可选的。但是,在数据库表中,字段受外键约束。如果用户不从下拉列表中选择,那么它会因为外键而产生问题。

一种解决方案是在主表中创建默认选项并在空白选择的情况下使用它。但在下拉列表中,我们需要处理它以显示在顶部。 是完美的解决方案吗? 有没有其他优化的解决方案?

谢谢

【问题讨论】:

  • 所以你的下拉菜单并不是可选的。您的解决方案似乎没问题,只需让下拉菜单显示默认选择即可。

标签: c# asp.net sql-server database foreign-keys


【解决方案1】:

如果数据库需要它,那么它在前端不应该是可选的。要么改变数据库,要么改变前端。单独的外键约束不应强制执行此操作,您可能希望使该字段可为空。

【讨论】:

  • 我们可以在外键约束中插入 null 吗?空插入对 DB 有好处吗?
  • 这取决于您的数据结构 - 在这种情况下,null 表示该项目未与您的 FK 链接。有些人不喜欢 null,但这真的取决于你。
  • 如果你真的可以拥有一个未链接的项目,NULL 是迄今为止存储它未链接这一事实的最佳选择,而不是任何标记值。这是数据库在返回左连接时所做的事情,因此它很好且一致,并且当您需要在应用程序中对其做出反应时,数据库很容易感知和处理 COALESCE 等函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-16
  • 2010-12-16
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
相关资源
最近更新 更多