用户组表架构

| 我正在创建一个用户可以加入并创建组的系统。在这些组中,成员可以创建主题并回答已经创建的主题,因此,我想了解您对以下哪种方法最好的看法: 创建两个表groups_posts和group_topics:
--group_topics
id PK
group_id int FK
user_id int FK
title varchar(50)
content varchar(500)
status int

--group_posts
id PK
topic_id int FK
user_id int FK
content varchar(500)
status int
或创建一个唯一的表group_tposts:
--group_tposts
id PK
group_id int FK
user_id int FK
is_topic boolean
title varchar(50)
content varchar(500)
status int
    
已邀请:
        根据您的描述,在我看来,可能还需要更多。也许是这样的: 一组可以有许多用户。 一个用户可以属于多个组。 在一个组内,用户创建主题(主题=主题;主题;类别或一般感兴趣的领域。) 在主题内,用户创建新帖子或回复以前的帖子。   注意:将内容字段添加到“ 2”。     
        这真的取决于: 组合桌的情况 考虑到布尔值仅占用一个字节的事实,组合表并不是一个坏主意。 但是请注意,由于基数较低,因此无法在字段“ 3”上创建索引。 MySQL(或任何其他数据库)将拒绝在该字段上使用索引,而是进行表扫描。 单独桌子的情况 如果您打算经常使用与主题分开的帖子,则建议使用单独的表格。 由于对这些内容的选择将更快,因此MySQL不必进行全表扫描即可将帖子与主题分开。     
        我认为两张桌子更好... 您可以在Wikipedia上看到如何规范化databe系统 http://en.wikipedia.org/wiki/Database_normalization     

要回复问题请先登录注册