Auto increment 每个表有多个自动增量

Auto increment 每个表有多个自动增量,auto-increment,mysql,Auto Increment,Mysql,大家好, 我试图创建一个表,其中包含一组指向某个用户的ID,对于每个用户,都会有多个帖子,这些帖子也应该有自己的ID。我的问题是如何创建表,以便在为某个用户插入记录时,他们的post id应该增加1。这意味着用户1将有帖子1、2、3和4,用户2将有帖子1、2、3、4、5、6和7,等等 event_id是表的主键,FK_user_id是映射回用户表的外键,post_id是该用户的post是哪个编号(这是我的问题列),post是post -------------------------------

大家好,
我试图创建一个表,其中包含一组指向某个用户的ID,对于每个用户,都会有多个帖子,这些帖子也应该有自己的ID。我的问题是如何创建表,以便在为某个用户插入记录时,他们的post id应该增加1。这意味着用户1将有帖子1、2、3和4,用户2将有帖子1、2、3、4、5、6和7,等等

event_id是表的主键,FK_user_id是映射回用户表的外键,post_id是该用户的post是哪个编号(这是我的问题列),post是post

----------------------------------------------------
|  event_id  |  FK_user_ID  |  post_id  |   post   |
|      1     |       1      |      1    |   hey    |
|      2     |       1      |      2    | you too  |
|      3     |       1      |      3    |   ok     |
|      4     |       2      |      1    |   foo    |
|      5     |       2      |      2    |   bar    |
----------------------------------------------------

您不需要一个单独的表来存储每个用户的帖子吗?然后,您可以通过用户id链接它们,并在需要时使用连接来获取信息:

--------------------- | User_ID | Post_ID | | 1 | 1 | | 2 | 2 | | 2 | 3 | | 3 | 4 | | 4 | 5 | --------------------- --------------------- |用户ID |发布ID| | 1 | 1 | | 2 | 2 | | 2 | 3 | | 3 | 4 | | 4 | 5 | ---------------------
etc etc

您不需要一个单独的表来存储每个用户的帖子吗?然后,您可以通过用户id链接它们,并在需要时使用连接来获取信息:

--------------------- | User_ID | Post_ID | | 1 | 1 | | 2 | 2 | | 2 | 3 | | 3 | 4 | | 4 | 5 | --------------------- --------------------- |用户ID |发布ID| | 1 | 1 | | 2 | 2 | | 2 | 3 | | 3 | 4 | | 4 | 5 | ---------------------
etc etc

每个表只能有一个自动增量。如果这是一个家庭作业,那么“开箱即用”的方法可能是为每个用户创建单独的表,而不是一个包含多个列的表。然后,当使用单独的表时,可以对每个表使用自动增量。然后,您只需创建一个视图,将表连接在一起以便于阅读。

每个表只能有一个自动增量。如果这是一个家庭作业,那么“开箱即用”的方法可能是为每个用户创建单独的表,而不是一个包含多个列的表。然后,当使用单独的表时,可以对每个表使用自动增量。然后,您只需创建一个视图,将表连接在一起以便于阅读。

恐怕我认为每个表不能有多个
自动增量列。可以将其放在复合索引的第二列上,如前所述,但不能有多个

我认为您需要创建一个单独的用户表,将用户id(
user.id
)作为
post.user\u id
的外键引用


现在,您可以在
(用户id,post\u序列)
post
上创建
主键
,并在其列规范中使用
AUTO\u INCREMENT
定义
post\u序列。
恐怕每个表不能有多个
AUTO\u INCREMENT
列。可以将其放在复合索引的第二列上,如前所述,但不能有多个

我认为您需要创建一个单独的用户表,将用户id(
user.id
)作为
post.user\u id
的外键引用


现在,您可以在
(用户id,post\u序列)
post
上创建
主键
,并在其列规范中使用
自动增量
定义
post\u序列。

使用
MyISAM
,这是可能的:

CREATE TABLE posts (user_id INT NOT NULL, post_id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (user_id, post_id)) ENGINE=MyISAM;

INSERT
INTO    posts
VALUES
(1, NULL),
(1, NULL),
(1, NULL),
(2, NULL),
(2, NULL);
结果:

1, 1
1, 2
1, 3
2, 1
2, 2

有了MyISAM
,这是可能的:

CREATE TABLE posts (user_id INT NOT NULL, post_id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (user_id, post_id)) ENGINE=MyISAM;

INSERT
INTO    posts
VALUES
(1, NULL),
(1, NULL),
(1, NULL),
(2, NULL),
(2, NULL);
结果:

1, 1
1, 2
1, 3
2, 1
2, 2

在ASCII艺术中,您是否可以显示希望表格的外观(添加数据后)?我想我不明白这些条目是如何与用户的帖子联系在一起的=/你真的需要两个自动增量吗?我相信
user
Aldray在它自己的表中有一个自动增量。@David我今天晚些时候会把它放在这里@Quassnoi我不是指自动增量,而是指一个能起作用的东西。你能用ASCII艺术来展示你想要的表的样子吗(一旦添加了数据)?我想我不明白这些条目是如何与用户的帖子联系在一起的=/你真的需要两个自动增量吗?我相信,
user
Aldray在自己的表中有一个自动增量。@David我今天晚些时候会把它放在这里@Quassnoi我实际上不是指自动增量,而是指一个可以作为一个自动增量的东西,我想尝试避免制作另一个表,因为我觉得少就是多。然而,我对MySQL有点不在行,所以我真的不知道。这只是一个小的宠物项目,但如果我对MySQL有更多的了解,添加另一个表是否比我上面要求的任何方法(如果可能的话)更有效?是的,特别是当使用外键时,允许快速索引。表分离和连接当然不会对这样的事情产生显著的速度影响,我总是发现分离出这样的信息更好、更容易。我想尝试避免创建另一个表,因为我觉得越少越好。然而,我对MySQL有点不在行,所以我真的不知道。这只是一个小的宠物项目,但如果我对MySQL有更多的了解,添加另一个表是否比我上面要求的任何方法(如果可能的话)更有效?是的,特别是当使用外键时,允许快速索引。表分离和连接当然不会对这样的事情产生显著的速度影响,我总是发现分离这样的信息更好、更容易。这不完全是家庭作业,更多的是我自己做的一个小项目。我对做这件事很感兴趣,如果有这样的事情,我会认为这是“正确的方式”。这不完全是家庭作业,更多的是我自己做的一个小项目。我感兴趣的是,如果存在这样的事情,我会认为这是“正确的方式”。