我有一个数据库,有两个表,用户表和照片表。
我想要的是在两个表之间建立连接,我希望用户能够使用他们上传到照片表的照片更新用户表中的头像字段。每次他们上传照片时,头像字段都会用新照片更新,我知道mysql中的外键,但在这方面并不完美。
您能否告诉我这是否是在我的网站上实施此类功能的最佳方式。如果我的语法不完美,请不要被冒犯。
CREATE TABLE `users` (
`id` bigint(20) NOT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`age` bigint(200 NOT NULL,
`gender` VARCHAR(10) NOT NULL,
`avatar` tex NOT NULL,
`signup_date` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
然后我有另一张桌子,其中包含用户上传的所有照片,这是结构
CREATE TABLE IF NOT EXISTS `photos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`location` varchar(100) NOT NULL,
`caption` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
答案 0 :(得分:0)
我认为你需要做的第一件事就是在你的照片表中添加一个user_id列,这将作为一个外键,这样你就可以找到某个用户上传的所有照片。完成后,您可以使用以下内容获取用户上传的所有照片
> mixingmatrix(net, "group")
To
From A B C D Total
A 3 2 1 1 7
B 3 0 1 0 4
C 1 1 0 0 2
D 0 0 1 0 1
Total 7 3 3 1 14
答案 1 :(得分:0)
首先,您必须在这两个表之间建立连接,在照片表中添加列user_id。
def get_page(ward):
pass
def write_ward_csv(ward, ward_html):
pass
for ward in [ ... ]:
write_ward_csv(ward, get_page(ward))
然后更改用户表的结构,您必须将头像存储为具有照片ID的int。 将虚拟形象从varchar更改为整数值。
CREATE TABLE
IF NOT EXISTS photos (
id INT (11) NOT NULL AUTO_INCREMENT,
location VARCHAR (100) NOT NULL,
caption VARCHAR (100) NOT NULL,
user_id int(11) NOT NULL,
PRIMARY KEY (id)
) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 5;
然后,当用户将数据添加到照片表中时,只需编写user_id,然后您就可以使用MySQL查询获取所有用户照片:
CREATE TABLE users (
id BIGINT (20) NOT NULL,
username VARCHAR (255) NOT NULL,
PASSWORD VARCHAR (255) NOT NULL,
email VARCHAR (255) NOT NULL,
age BIGINT (200) NOT NULL,
gender VARCHAR (10) NOT NULL,
avatar INT(10) NOT NULL,
signup_date INT (10) NOT NULL
) ENGINE = MyISAM DEFAULT CHARSET = utf8;
然后,您将选择要制作头像的一张照片的ID,并将更新用户带有照片 id 的名为头像的表格列(photos.id)