我有一个数据库,其中有一个members
表,其中存储了成员,类似于
| 身份证|电子邮件|口令|
| --------------|--------------|--------------|
| 1| www.example.com |行|
| 二| www.example.com |行|
另一个存储(假设)posts
的表
| 身份证|成员ID|内容|
| --------------|--------------|--------------|
| 1|1|Hello World 1|
| 二|1|Hello World 2|
| 三|二|单词hello 1|
| 四|二|单词hello 2|
我将实现的是有一个不同的ID计数器为每个用户虽然。就像这样
| 身份证|成员ID|内容|
| --------------|--------------|--------------|
| 1|1|Hello World|
| 二|1|Hello World|
| 1|二|单词hello|
| 二|二|单词hello|
甚至可能是这样的
| 主ID|身份证|成员ID|内容|
| --------------|--------------|--------------|--------------|
| 1|1|1|Hello World|
| 二|二|1|Hello World|
| 三|1|二|单词hello|
| 四|二|二|单词hello|
当然,我可以使用id
和member_id
创建一个密钥,使它们唯一。在这种情况下,我不能使用计数器的自动增量虽然。我应该使用一些逻辑后端计算新的id。
我想知道的是有没有办法让Postgres自己做。给member_id
postgres应该会自动为该成员分配下一个可用的索引,就像普通计数器一样。这可能吗?
谢谢
1条答案
按热度按时间jm81lzqq1#
row_number()
窗口函数将基于组和/或顺序生成从1
开始的索引。索引将由第一个
row_number()
全局创建。第二个row_number(),将根据每个成员创建索引。关于
main_id
,您也可以选择使用Post id
:Demo here