帮助逻辑设置我的数据库表

时间:2011-03-15 17:02:18

标签: php mysql database

我正在使用我的第一个框架网站(使用codeigniter)并且无法提供设置数据库表的最佳方法。这个网站本质上就像一个剥离的reddit和hackernews。用户将注册,创建一个具有2个可能的cateogories并具有嵌套注释的线程。到目前为止,我已经提出了这个设置:

用户

ID 名称 密码 创立日期 shortbio

帖子

ID 标题 内容 类别 creationdate

评论

ID 父母身份 内容 creationdate

现在我不知道怎么离开这里。有没有更好的方法来设置它?我最难以看到用户名如何链接到他们发布的帖子以及评论发挥作用的位置。任何帮助或指示都表示赞赏!!

2 个答案:

答案 0 :(得分:1)

您需要采取的第一步是找出关系。 ERD(实体关系图)对此有很大帮助。您还可以使用MySQL Workbench之类的工具来绘制表格彼此之间的关系。它非常简单,它只是向您显示实体之间的关系。我会在这里列出最明显的,所以你知道如何开始

  1. 评论属于Post:这意味着评论表需要一个post_id列来存储作为此评论的所有者的帖子的ID。

  2. 帖子属于用户:就像之前一样,在posts表中需要一个user_id列来指定所有权。

  3. 帖子属于类别:您已正确添加类别列以指定所有权。

  4. 一旦映射出关系,就可以使用codeigniter来编写与这些主要实体相对应的模型。

答案 1 :(得分:0)

添加:

会很有用
  • 状态字段(tinyint)到表格,以便能够禁用/启用帖子,用户,评论。
  • 用户的电子邮件
  • shortbio是不太好的想法,更好地分别存储生物片(出生日期,姓氏等),所以它会更灵活
  • 用于评论添加post_id,user_id字段 - 父帖子的ID
  • 在单独的表格中提取猫,并通过cat_id提取linkeem(可能你会以超过2只猫结束)

用户

id name 状态电子邮件密码creationdate dob

帖子

id title 状态cat_id 内容类别creationdate

评论

id post_id user_id parent_id 状态内容创建日期

分类

cat_id标题状态

在进一步开发过程中,添加和改进的更多选项将变得明显)