我试图找到关于此的一些信息,但我不确定在哪里查看或如何表达它。
我做了一个简单的应用程序来学习PHP。但是,整个应用程序都是特定于用户的(您登录以查看自己的帖子)。
我应该在哪里存储用户数据和发布数据?例如,我需要存储post_title, post_content, post_id, post_time, post_status
,用户将user_name, user_password, user_email
。
这些应该在单独的表格中,还是在一起?存储此类数据的常用方法是什么?
答案 0 :(得分:2)
您需要在单独的用户表中包含详细信息。
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
);
答案 1 :(得分:1)
简单回答:将用户信息放在一个表中,每个用户都有一个唯一的密钥。然后使用此唯一键标记每个“帖子”。您可以在以后的每个帖子中使用“评论”和“编辑”。 (提示 - 每个帖子也有一个唯一的密钥)
更复杂的答案:阅读有关数据库normalization。