mysql - 如何将用户特定数据存储在数据库中

标签 mysql sql

<分区>

我正在尝试查找有关此的一些信息,但我不确定在哪里查找或如何措辞。

我制作了一个简单的应用程序来学习 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 IDPost 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
);

关于mysql - 如何将用户特定数据存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23365465/

相关文章:

mysql - 在rails应用程序中使用activerecord处理MySQL故障转移(主/从角色切换)

MYSQL:序号表

SQL存储过程和触发器的区别

php - 选择两列中不同但按一分组

mysql - SQL查询我想不通

mysql - SQL 错误 : #1005 - Can't create table

sql - 在sql中用日期和时间连接两列?

mysql - 尝试使用 MySQL 创建同一表中另一列的季节至今平均值的列

PHP导入数据完整性

sql - 如何在 SSRS 中导出没有标题的 csv