我正在尝试查找有关此的一些信息,但我不确定在哪里查找或如何措辞。
我制作了一个简单的应用程序来学习 PHP。但是,整个应用程序是特定于用户的(您登录以查看自己的帖子)。
我应该在哪里存储用户数据和发布数据?例如,我需要存储 post_title、post_content、post_id、post_time、post_status
,而用户将有 user_name、user_password、user_email
。
这些应该在单独的表格中,还是放在一起?存储这类数据的常用方法是什么?
您需要在单独的用户表中包含详细信息。
User ID | User Name | Full Name | Email Address
User ID
字段是唯一的。现在您需要将您的帖子存储在另一个表中:
Post ID | Post Subject | Post Content | Post Time | Post Status | Author
而这个Author
是一个外键,应该和Users表的User ID
字段关联起来。这称为关系数据库。可以这样建立关系:
如果您在此表中看到,User ID
和 Post ID
是唯一键。它们称为主键,这意味着每一行都由该值标识。此外,使用它的主要原因是为了避免用户值之间的冗余,而且这样可以节省大量占用的空间。 :)
SQL 是:
CREATE TABLE Users (
`User ID` int PRIMARY KEY,
`User Name` varchar(255),
`Full Name` varchar(255),
`Email Address` varchar(255)
);
INSERT INTO Users (
`User ID`, `User Name`, `Full Name`, `Email Address`
) VALUES (
NULL, 'Username', 'Full Name', 'email@gmail.com'
);
CREATE TABLE Posts (
`Post ID` int PRIMARY KEY,
`Post Subject` varchar(255),
`Post Content` TEXT,
`User ID` int
);
INSERT INTO Posts (
`Post ID`, `Post Subject`, `Post Content`, `User ID`
) VALUES (
1, 'Hello World', 'Hello World', 1
);