CREATE TABLE visits (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
page_id INTEGER(30),
user_id INTEGER,
server_date datetime,
_source VARCHAR(30)
INSERT INTO visits (page_id, user_id, server_date, _source )
VALUES
(5135611, 10091422, '2017-03-04 23:45:46.000', 'android' ),
(5135612, 10091422, '2017-03-04 23:46:46.000', 'IOS' ),
(5135613, 10091422, '2017-03-05 23:45:46.000', 'android' ),
(5135614, 10091423, '2017-03-05 23:45:46.000', 'IOS' ),
(5135615, 10091424, '2017-03-06 23:45:46.000', 'android' ),
(5135616, 10091425, '2017-03-07 23:45:46.000', 'android' );
CREATE TABLE Purchases (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
transaction_id INTEGER(30),
user_id INTEGER,
purchase_date datetime,
product_type VARCHAR(30),
price INTEGER ,
);
INSERT INTO Purchases (transaction_id , user_id, purchase_date, product_type, price )
VALUES
(5135611, 10091422, '2017-03-04 23:45:46.000', 'lfl', 150 ),
(5135612, 10091427, '2017-03-04 23:46:46.000', 'sdgw', 2000 ),
(5135613, 10091426, '2017-03-05 23:45:46.000', 'whgwb', 100 ),
(5135614, 10091423, '2017-03-05 23:45:46.000', 'wgwg', 2500 ),
(5135615, 10091424, '2017-03-06 23:45:46.000', 'vas', 2000 ),
(5135616, 10091425, '2017-03-07 23:45:46.000', 'wgw', 300 );*/
所以现在我很困惑这两个表中的主键和前键应该是什么。我认为 user_id 应该是购买表的外键,但那里的值不是唯一的。不知道如何组织正确的连接。
答案 0 :(得分:0)
您需要创建一个单独的字典表。像这样
create table users(
id int unsigned not null auto_increment,
username varchar(100) not null defaul '',
primary key(id)
);
并使用表中的外键引用此表。
INT 必须为 auto_increment 无符号,
int(30) 没有意义 参数表示要打印的位数,int值不能大于10 使用默认值