我拼凑的图像网站。 其基本模式是非常简单的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语法的解决方法这种情况。 是否存在? 最好的亚军是:
- 添加“非审”的决议类型
- 添加一个
NULL
项luResolutionTypes.resolutionTypeID
(这会即使在工作AUTO_INCREMENT
列?)
感谢您的见解!
PS奖励积分给谁就给谁告诉我是否在数据库的情况下,它的“指数”或“指数”。
追问 :感谢比尔Karwin指点出了什么竟然是在表结构中的语法错误(没有设置列NOT NULL
如果你想让它允许NULL
!)。 而一旦我有足够的业力给你的奖励积分,我会:)