php - 您如何处理 mySQL 数据库中的复杂数据结构 (OOP)?

标签 php mysql database oop

我将尝试用一个例子来说明我的意思。

假设您正在运营一个拥有用户并允许发帖的网站。

你有一个用户列表,每个用户都有:
一个名字
密码
主题选择
帖子:
- 帖子标题
- 发布时间/日期
- 帖子编号
- 帖子的标签数组

用户 ID/名称/密码/主题很简单。每个变量可以是一列,ID auto-incs。当我到达帖子时,我不确定该怎么做。在非常友好的 OOP 中,我只会制作一个帖子对象类型并为用户制作一个数组。我应该如何在 mySQL 数据库中执行此操作?我有点震惊,因为它不是我教科书中的第一件事,这一定很常见。无论如何,我可能会做一个非常丑陋的 hack 来让它工作,但我想知道“正确”的方法。

谢谢!

最佳答案

成员:

id    (autoinc)
name
password
theme_id

帖子:

id    (autoinc)
member_id
title
date

标签:

id    (autoinc)
name

标记关系:

tag_id
post_id

Posts 是您的帖子“数组”,member_id 列将每个帖子链接到其用户。 标签是您的标签“数组”,标签关系将每个标签链接到一个或多个帖子。

这是一个示例,说明如何通过一次查询获取用户的所有帖子和标签:

SELECT Members.name, Posts.title, Tag_Relations.item_id, Tags.name 
FROM Members LEFT 
JOIN Posts ON Members.id = Posts.member_id 
LEFT JOIN Tag_Relations ON Tag_Relations.post_id = Posts.id 
LEFT JOIN Tags ON Tags.id = Tag_Relations.tag_id 
WHERE Members.id = 2779;

+----------+-----------------------------------+------------+---------+
| name     | title                             | item_recid | name    |
+----------+-----------------------------------+------------+---------+
| Mike     | One Post's Title                  |        973 | Houses! | 
| Mike     | One Post's Title                  |        973 | Cars    | 
| Mike     | One Post's Title                  |        973 | Hats    | 
| Mike     | Another Post's Title              |        973 | Cars    | 
| Mike     | Yet another post                  |        975 | Homes   | 
| Mike     | Guess what?!                      |        976 | Houses! | 
| Mike     | Another one :)                    |        977 | Noses   | 
| Mike     | Another one :)                    |        977 | Mouth   | 
| Mike     | Another one :)                    |        977 | Head    | 
| Mike     | Another one :)                    |        977 | Knees   | 
+----------+-----------------------------------+------------+---------+

关于php - 您如何处理 mySQL 数据库中的复杂数据结构 (OOP)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3480975/

相关文章:

mysql - 如何将matlab数据表插入MySQL数据库

php - 只有默认的永久链接工作 wordpress 其他人变成 404 错误

mysql - 使用运行 Moodle 1.9.X 的 InnoDB 的 MySql 的最佳隔离级别是多少

php - 上传查询 mySQL

mysql - 多对多关系中的外键

php - 在条件中编写具有可为空值的准备好的语句

mysql - 不同事件的相同触发器

database - 存储大量数据 : DB or File System?

javascript - 可以做 ajax get 然后将数据发布到 php 文件吗?

PHP PDO 和 bindParam()