0

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

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

谢谢。

4

3 回答 3

0

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

您真的应该搜索介绍性数据库设计教程;经验是你擅长这一点的唯一途径。

于 2013-07-25T23:31:37.693 回答
0

一张大表是您只为解决性能问题而做的事情。代价是数据重复,可能会导致数据完整性不佳以及数据库设计人员认为您不擅长此操作。

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

你需要找到一个关于规范化的教程,最后达到 3NF(第三范式)

根据你所说的,这有点令人困惑

一个表保存用户信息,至少有一个 UserID 然后另一个相关表(假设用户可以有多个笔记)称为 UserNotes,至少有 NoteID 和 UserID。

真的无能为力,谷歌教程。只学习 sql(首先是 MySQls 风格),在你接近 PHP 之前,也有很多关于它的教程。寻找一个使用 PDO 的。

于 2013-07-25T23:32:59.170 回答
0

对于一个简单的笔记应用程序,您应该创建两个表来存储信息,“用户”和“笔记”。然后在您的代码上处理整个用户输入并将其查询到这些表中。请注意“notes”表上的“user_id”字段是如何在选择或插入查询时将笔记与“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 编程

于 2013-07-25T23:33:09.057 回答