创建表,其中主键是两个不同表中两个字段的组合

时间:2013-11-05 16:55:20

标签: mysql sql

我想创建包含主键的表,该主键包含两个不同表的字段。

URL_TABLE

---------            
url varchar(255)    No           
desc    varchar(2048)   No           
preview varchar(255)    No           
img_url varchar(128)    No           
title   varchar(128)    No           
hash    varchar(128)    No       // This is one  
rate    varchar(20)     Yes     NULL    

用户

------
id      varchar(40) No       //This is 2nd
name    varchar(50) Yes     NULL         
email   varchar(50) Yes     NULL         
picture varchar(50) No           

查询:

create table post_table as 
    select id 
    from USER 
  UNION 
    select url, desc, preview, img_url, title, hash, rate 
    from URL_TABLE 
primary key (id,hash);

这是正确的查询吗?

1 个答案:

答案 0 :(得分:3)

从这个评论中,“我的目的是在我的页面上,我有用户的运行会话(这将给我他的ID),我想在他处理的每个URL上绑定他的动作。所以post_table将包含来自用户表和休息的id来自网址表“

的字段

您正在描述用户和网址之间的多对多关系。用户可以处理多个网址,并且网址可以由多个用户处理。

存储此数据的更好方法是使用user_id,url和datetime_processed作为主键的表。您可以通过简单的连接从网址表中获取有关网址的其他信息。