我需要为应用创建一个数据库,以显示不同作者的帖子。
一些必要的专栏是:
id (INT)
url (TEXT)
content (TEXT)
date (TEXT)
author_username (TEXT)
author_fullname (TEXT)
author_avatar_url (TEXT)
author_url (TEXT)
现在,作者的每篇帖子都可以来自不同的Feed,例如timeline
,favorites
等,每个Feed都有不同的唯一ID ,而其他列仍然是相同。
例如:
id | url | content | date |... | username | fullname | avatar | url
-----+---------+---------+------+----+----------+ ---------+--------+--------
123 | foo.com | xyz | 2018 |... | foo | foobar | avatarurl.com | foobar.com <---- Feed 1
1592 | foo.com | xyz | 2018 |... | foo | foobar | avatarurl.com | foobar.com <---- Feed 2
148 | foo.com | xyz | 2018 |... | foo | foobar | avatarurl.com | foobar.com <---- Feed 3
因此,为了消除冗余,我决定使用以下三个表 -
作者表:
username | fullname | avatar_url | url
username
是PK 帖子表格:
internal_id | url | content | date | ... | author_username
internal_id
是自动递增的,是PK author_username
是引用Author.username
供稿表格:
post_id | feed | post_internal_id
post_id
是PK
post_internal_id
是FK引用Posts.internal_id
我对数据库设计没有多少经验,这就是为什么我想知道这个设计是否正确的原因。可以用任何方式改进吗?要在数据库上执行的一些查询是从特定源获取所有帖子,更新特定post_id
的posts表中的列,使用post_id
获取作者数据。
答案 0 :(得分:0)
我希望与帖子无关的供稿表。为所有用户提供相同的Feed:
feeds(feed_id, feed_name)
然后你还有:
users(username, fullname, avatar_url, url) posts(post_id, content, date, username)
然后将帖子链接到用户Feed:
post_feeds(post_id, feed_id)
好吧,你可以使用单个ID或复合键,但它应该是这样的: - )