我正在建立一个小型社交网站,我对数据库架构有疑问:
我应该如何存储用户的帖子(文本)?
我将有一个单独的POST表,并通过USERS_POST表链接USERS表。
但每次在用户的个人资料中显示所有帖子时,系统都必须在整个USERS_POST表中搜索USER id,然后显示?
我还应该做些什么?
同样,我应该如何存储用户工作或学习过的多个地方?
我理解它很广泛,但我是数据库的新手。 :)
答案 0 :(得分:0)
首先不要太担心,首先要让它工作,看看你遇到性能问题。数据库可能比您预期的要快得多。此外,当您的实际查询速度太慢时,通常会更容易看到最佳解决方案。
关于您的设计,如果帖子永远不会链接到多个用户,那么请忘记USERS_POST表并将用户ID放在POST表中。在任何一种情况下,当数据库变大时,用户id的索引将有所帮助(如不必读取整个表)。
您要存储在其他表中的单个用户的多个位置。例如,名为USERS_PLACES,给它一个user_id列,将其链接到USERS以及其他列,以便为每个地方存储数据。
BTW在postgresql中,您可能希望将所有对象(表,列,...)名称保持为小写,因为除非您注意始终引用它们,例如" USERS" postgresql会使它们小写,这可能会令人困惑。