非常基础的数据库设计(初学者总数)

时间:2013-07-25 23:20:51

标签: mysql database database-design

我刚开始学习服务器端编程(PHP),我想尝试创建一个使用MySQL数据库存储一些用户数据(如笔记)的简单应用程序。 我是数据库中的总菜鸟,我不知道如何将帐户信息(用户名,密码等)与其数据相关联。

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

感谢。

3 个答案:

答案 0 :(得分:0)

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

你应该真正搜索入门数据库设计教程;经验是你擅长这一目标的唯一方式。

答案 1 :(得分:0)

只有一个大表才能解决性能问题。成本是数据重复,数据完整性差的可能性以及数据库设计者认为你不是很擅长。

没有足够的信息可以为您提供合适的设计,除非您了解其合适的原因,否则它无法提供帮助。

您需要找到关于标准化的教程,最后要达到3NF(第三范式)

基于你所说的有点混乱

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

无法真正帮助更多,谷歌一个教程。在学习PHP之前,首先学习sql(MySQls风味),还有大量的教程。寻找使用PDO的那个。

答案 2 :(得分:0)

对于简单的笔记应用程序,您应该创建两个表来存储信息,"用户"和"笔记"。然后在您的代码处理整个用户输入并将其查询到这些表中。请注意"笔记"表格中有一个" user_id"字段,您将笔记与" 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。  Practical PHP Programming