【问题标题】:Store same content "type" in one table with Mysql使用 Mysql 将相同的内容“类型”存储在一个表中
【发布时间】:2012-09-19 18:24:12
【问题描述】:

我正在我的数据库中创建一个简单的论坛,topic 拥有的东西之一是很多 comments

数据库结构不是问题,我实际上正在寻找一种方法来使用与blog comments 相同的comments 表。 (我不知道我如何解释,但我会尝试)

我想要博客帖子表,有很多 cmets(ok),并且论坛主题也有很多 cmets。

由于博客中的评论和主题对我来说是相同的,将它们全部存储在同一个地方会不会很好?如果是,我怎样才能区分一个和另一个,并准确地“找到”它们?

(如果我知道关键字,我会搜索谷歌...我其他时候也遇到过这个问题,但我解决了它为表创建了一个不同的名称,但它们是相同的,只是引用了其他东西......)

我正在使用 CakePHP。

伊万

【问题讨论】:

    标签: php mysql database model


    【解决方案1】:

    一种简单的方法,表格 cmets,您可以在其中存储所有 cmets

    id|text   |user_id
    1 | hello |1
    2 | world |2
    

    然后你从其他表中引用这个表,你需要这样的 blog_cmets:

    id|discussion_id|comment_id|timestamp
    1 |1234         |1         |2012-19-09 20:30:00
    

    discussion_id 是 root 或 forum_cmets:

    id| forum_id| comment_id| timestamp
    1 |123444   |2          |2012-19-09 20:31:00
    

    forum_id 是论坛的参数,comment_id 是对 cme​​ts 的引用。

    【讨论】:

    • 您实际上创建了“文本”字段,然后链接到主题...这很好!
    • 我明白了!谢谢 =] 我可以将同样的想法用于许多其他事情
    【解决方案2】:

    为什么不使用不同的索引名称?

    对于博客 - blog_id

    对于论坛 - 主题 ID

    【讨论】:

    • 我没有看到问题,但是在 dident 属于该类型的字段中会有“空”值。例如:123(post_id), null (topic_id), "text"...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2017-05-06
    • 1970-01-01
    • 2012-02-11
    • 2020-09-19
    相关资源
    最近更新 更多