我有两个表projs
和studies
,它们指的是我正在构建的网站上的内容类型,我的最新任务是我需要为每个项目添加图像轮播和研究(projs
和studies
的每一行。换句话说,每个项目和研究都需要有一个相关的图像轮播。
我在桌子上的位置:
projs
id | ...
----------------
1 | ...
2 | ...
3 | ...
studies
id | ...
-----------------
1 | ...
2 | ...
3 | ...
我想成为或认为我应该成为:像
这样的东西 projs
id | ... | carid
------------------------
1 | ... | 1
2 | ... | 5
3 | ... | 6
studies
id | ... | carid
-------------------------
1 | ... | 2
2 | ... | 3
3 | ... | 4
carousels
id
------
1
2
3
4
5
6
carousel_assets
id | imgurl | carid
1 | ... | 1
2 | ... | 2
3 | ... | 1
4 | ... | 1
5 | ... | 5
6 | ... | 2
7 | ... | 3
8 | ... | 4
9 | ... | 3
10 | ... | 4
11 | ... | 3
12 | ... | 2
13 | ... | 2
每个表中的carid
引用id
的{{1}}。
问题1:这是正确的设计????
我跑来创建两个新表的查询是
carousels
现在我要做的是将CREATE TABLE carousels (id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY;
CREATE TABLE carousel_assets (id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, img VARCHAR (250), carid MEDIUMINT, FOREIGN KEY (carid) REFERENCES carousels(id) ON DELETE SET NULL;
列添加到carid
和projs
。我试过了
studies
并得到了非常不合理的错误
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'MEDIUMUINT,FOREIGN KEY(carid)DEFAULT NULL REFERENCES 第1行的旋转木马(id)'
问题2:导致该错误的查询有什么问题?
在每个页面上,让我们说,ALTER TABLE projs ADD carid MEDIUMUINT, FOREIGN KEY (carid) DEFAULT NULL REFERENCES carousels(id);
与上面示例中的轮播/studies/?id=1
相关联,我需要将所有图像与该轮播相关联,我的查询应该是什么?
答案 0 :(得分:1)
该错误具有足够的描述性。您在MEDIUMUINT
中输入错字。将其替换为MEDIUMINT
:
ALTER TABLE projs
ADD carid MEDIUMINT, FOREIGN KEY (carid) DEFAULT NULL REFERENCES carousels(id);
答案 1 :(得分:0)
问题1.是主观的,但只要你的表格设计惯例规则一致,那就不错了。
问题2.这是您需要的查询吗?
ALTER TABLE projs ADD carid MEDIUMINT DEFAULT NULL, ADD FOREIGN KEY (carid) REFERENCES carousels(id);