mysql外键一般是0还是null_MySQL外键允许NULL?

我在拼凑图像网站。基本模式相当简单的MySQL,但我有一些麻烦,试图表示与图像(“不适当”,“版权”等)相关联的可能的管理标志。我目前的想法如下:

tblImages (

imageID INT UNSIGNED NOT NULL AUTO_INCREMENT,

...

);

tblImageFlags (

imageFlagID INT UNSIGNED NOT NULL AUTO_INCREMENT,

imageID INT UNSIGNED NOT NULL,

flagTypeID INT UNSIGNED NOT NULL,

resolutionTypeID INT UNSIGNED NOT NULL,

...

);

luResolutionTypes (

resolutionTypeID INT UNSIGNED NOT NULL AUTO_INCREMENT,

resolutionType VARCHAR(63) NOT NULL,

...

);

(为了方便阅读,截断;分类的外键和索引是顺序的,我发誓)

tblImageFlags.flagTypeID是外键在一个标志类型的查找表,并且你可以想象tblImageFlags.resolutionTypeID应该外键在luResolutionTypes.resolutionTypeID。现在的问题是,当一个标志首次发出时,没有逻辑分辨率类型(我会声明这是一个很好的使用NULL);但是,如果设置了一个值,它应该外键到查找表。

我找不到一个MySQL语法解决方法这种情况。它存在吗?最好的跑者是:

>添加“未监控”分辨率类型

>向luResolutionTypes.resolutionTypeID添加一个NULL条目(这甚至会在AUTO_INCREMENT列中工作吗?)

感谢您的洞察!

PS Bonus指向谁告诉我在数据库的情况下是“索引”还是“索引”。

后续:感谢Bill Karwin指出什么是表结构中的语法错误(如果你希望允许NULL,不要将列设置为NOT NULL)。一旦我有足够的因果,给你这些奖励积分,我会:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值