0

我正在使用 cakePHP 1.26。
我将在 localhost 上建立一个非常简单的论坛。
这是数据库的概念设计:

表:
用户 {user_id, name, date}
主题 {post_id, title, content, date}
回复 {post_id, content, date}
引用 {quote_post_id, post_type, post_id}

一个用户可能有很多主题
一个用户可能有很多回复
一个主题可能有很多引用
一个回复可能有很多引用
(主题和回复都可能被引用一次或多次)

请帮助和建议。

4

3 回答 3

3

用户{id, name, logname, password}

主题{id, title, content, date, user_id}

回复 {id, content, date, topic_id, user_id}

我不确定Quote...我不知道为什么不适合Reply

于 2010-08-02T13:17:29.643 回答
1

您肯定想引入一个名为 id 的字段,因为user_id当它是 table 中的 id 字段时,命名一个字段有些多余users。除此之外 cakephp 将某些字段视为automagicAutomagic意味着 cakephp 可以识别外键,而无需您 - 开发人员 - 必须明确指定它们。但是为了让 cakephp 帮助您使用automagic,您必须遵守一些约定。这些约定之一,一旦学会就非常方便,一旦你将它们命名为 YOUR_MODEL_NAME_IN_SINGULAR_HERE_id,就会自动检测到外键;eg:一个作者有很多帖子,一个帖子属于To一位作家 (*)。在这种情况下,您可以将外键存储autor_id在表中posts。稍后当您使用cake bake脚本或脚手架功能时,您将了解约定的力量!

我在您的帖子中注意到的另一件事是,您可能会错过在 cakephp 中建立双向关系。这意味着您不仅使用单个hasMany定义,而且同时在另一个方向使用belongsTo定义。

因此,我建议您改写您的陈述,以便稍后实施冷却器。

于 2010-08-02T13:47:28.710 回答
1

我将尝试将 thelost 的答案引向不同的方向:

用户{id, name, logname, password}

发布 {id, 标题, 内容, 日期, parent_post_id, user_id}

引用 {post_id,quoted_post_id}

在此模型中,如果 parent_post_id 为 NULL,则帖子是主题。回复会将 parent_post_id 设置为其主题的 id。(或者您可以允许回复的树形结构。)

警告:我的经验是使用普通 SQL。我不知道 cakephp 中的事情是如何工作的,所以其他人将不得不帮助你。

于 2010-08-02T13:53:58.963 回答