我想创建一个包含主键的表,该主键具有两个不同表的字段。
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);
这是一个正确的查询吗?
最佳答案
从这个评论中,“我的目的是在我的页面上我有用户的运行 session (它将给我他的 ID)并且我想将他的操作绑定(bind)到他处理的每个 URL。所以 post_table 将包含来自用户表的 id 和其余的来自 url 表的字段"
您描述的是用户和网址之间的多对多关系。一个用户可以处理多个 url,一个 url 可以被多个用户处理。
存储此数据的更好方法是使用将 user_id、url 和 datetime_processed 作为主键的表。您可以通过简单的连接从 url 表中获取有关 url 的其他信息。
关于mysql - 创建表,其中主键是两个不同表中两个字段的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19794478/