Mysql 非常基础的数据库设计(完全初学者)

Mysql 非常基础的数据库设计(完全初学者),mysql,database,database-design,Mysql,Database,Database Design,我刚开始学习服务器端编程(PHP),我想尝试制作一个简单的应用程序,使用MySQL数据库存储一些用户的数据(如notes)。 我是一个完全不懂数据库的人,我不知道如何将帐户信息(用户名、密码等)链接到它的数据 您认为设计这样一个数据库的最佳方法是什么?(我想我可以创建一个包含帐户信息的表,然后为每个用户创建一个包含其数据的表,或者只创建一个大表,但我对构建数据库一无所知)。 最好的方法是什么?这将只是一个测试应用程序,但我还想知道一些在有许多用户的大型应用程序中高效工作的东西 谢谢 首先要查看数

我刚开始学习服务器端编程(PHP),我想尝试制作一个简单的应用程序,使用MySQL数据库存储一些用户的数据(如notes)。 我是一个完全不懂数据库的人,我不知道如何将帐户信息(用户名、密码等)链接到它的数据

您认为设计这样一个数据库的最佳方法是什么?(我想我可以创建一个包含帐户信息的表,然后为每个用户创建一个包含其数据的表,或者只创建一个大表,但我对构建数据库一无所知)。
最好的方法是什么?这将只是一个测试应用程序,但我还想知道一些在有许多用户的大型应用程序中高效工作的东西


谢谢

首先要查看数据的结构。在您给出的示例中,假设一个用户可以有多个注释,您将创建一个用户表和一个注释表。每个都有一个索引(且唯一)ID字段。Note表将有一个与User表中的ID匹配的UserID字段


您应该搜索介绍数据库设计的教程;经验是你精通这项工作的唯一途径。

一张大桌子是你只为解决性能问题而做的事情。成本是数据重复,这可能导致数据完整性差,数据库设计师认为您不擅长于此

没有足够的信息给你一个合适的设计,除非你理解为什么它是合适的,否则它不会真正有帮助

你需要找到一个关于标准化的教程,最后是3NF(第三种标准形式)

根据你说的有点让人困惑

一个用于保存用户信息的表,其中至少包含一个用户ID 然后是另一个相关表(假设用户可以有多个注释) 调用UserNotes,至少包含NoteID和UserID


除此之外,谷歌还提供了一个教程。先学习sql(MySQls风格),在学习PHP之前,还有很多关于它的教程。寻找一个使用PDO的应用程序。

对于一个简单的note应用程序,您应该创建两个表来存储信息,“users”和“notes”。然后在代码中处理整个用户输入,并将其查询到这些表中。请注意,在“notes”表上有一个“user_id”字段,在这里,在选择或插入查询时,可以将notes与“users”表中的“id”字段链接起来

下面是一个数据库的示例

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `notes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` text NOT NULL,
  `user_id` varchar(255) NOT NULL,
  PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这个网站有很多有用的信息可以让你开始学习PHP。

虽然我尊重你是初学者,但如果你能展示出基本的理解,或展示出你在具体问题上的尝试,你会得到更好的帮助。就目前而言,这个问题太宽泛了。你还需要学习密码散列和盐类之类的知识,因为你永远不想用明文存储密码。然后,您可能只想使用PHP的用户身份验证库,这样您就不会弄错,并危及公共网站上的任何用户信息:)您不想让
notes
表中的
用户id
成为
int
,而不是
varchar
?谢谢您指出这一点,伯特。我打错了。确保用户_id是int(11)而不是varchar(255)。