kyl*_*yle 64 mysql database null referential-integrity foreign-keys
我正拼凑一个图片网站.基本模式非常简单的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,
...
);
Run Code Online (Sandbox Code Playgroud)
(为了便于阅读而被截断;各种外键和索引都是有序的,我发誓)
tblImageFlags.flagTypeID在标志类型的查找表上是外键的,你可以想象tblImageFlags.resolutionTypeID 应该是外键的luResolutionTypes.resolutionTypeID.手头的问题是,当首次发布一个标志时,没有逻辑解决方案类型(我很好地宣称这个NULL); 但是,如果设置了一个值,它应该是外键键到查找表.
我找不到这种情况的MySQL语法解决方法.它存在吗?最佳参赛者是:
NULL条目luResolutionTypes.resolutionTypeID(这甚至可以在AUTO_INCREMENT列中工作吗?)感谢您的见解!
PS Bonus指向任何人告诉我,在数据库的情况下,它是"索引"还是"索引".
后续行动:感谢Bill Karwin指出了表格结构中出现的语法错误(NOT NULL如果您希望它允许,请不要设置列NULL!).一旦我有足够的业力给你那些奖励积分,我会:)
Bil*_*win 98
您可以通过允许NULL在外键列中解决此问题tblImageFlags.resolutionTypeID.
PS Bonus指向任何人告诉我,在数据库的情况下,它是"索引"还是"索引".
索引的复数应该是索引.
根据Bryan A. Garner的" 现代美国用法 ":
对于普通目的,索引是优选的复数,而不是索引....... 虽然指数虽然不如论坛或教条那么自命不凡,但仍然是自命不凡的.有些作家喜欢技术语境中的指数,如数学和科学.虽然不是指数的最佳复数,但指数在"指标"意义上是允许的.......避免单数指数,这是多元指数的反向形成.