最好构建论坛数据库

时间:2017-02-21 20:31:46

标签: php mysql

我正在练习写一个简单的论坛而且无法决定桌面结构。目前我有这个:

    id  int(11)     AUTO_INCREMENT      
    title   varchar(56) 
    group_id    int(11)
    group_parent    tinyint(1)
    access_from int(11) 
    alliance_forum  tinyint(1)           
    alliance_id int(11)
    alliance_role_access    int(11)

组父母是一个0或1列,表示论坛是论坛的父级,论坛的组ID是指参与同一个表的组论坛,并将组父级设置为1。

联盟论坛与组父级相同,作为联盟ID,访问列用于访问控制。

哪种方式是重组的最佳和最佳方式?我应该为联盟论坛,forum_groups和group_forums制作3个不同的表格,还是保持这种方式?

1 个答案:

答案 0 :(得分:1)

我认为你有正确的想法,但你现在正在把自己编程到一个角落。

论坛通常不需要嵌套线程,而是嵌套组/主题/类别

我会这样做:

表:组

state

表:线程

<Stave>

表:帖子

id  int(11)     AUTO_INCREMENT      
name   varchar(56)
parent    int(11) #If parent is 0 there is no parent. Else it's the ID of the parent group (so you can have nested groups/topics/categories)

您可能还想在线程和帖子中添加时间戳和创建者IP等内容。

如果您想要嵌套帖子(reddit样式),只需在帖子表中添加id int(11) AUTO_INCREMENT title varchar(56) alliance_id int(11) #again: 0 if not, else ID of your alliance

不太确定id int(11) AUTO_INCREMENT thread int(11) # id of thread message varchar(1000) creator int(11) #user id of creator 是什么意思