我正在设置一个新的Web服务,并且需要一些帮助来组织我的应用程序中的数据。我的应用程序是用PHP编写的,我计划使用MySQL数据库存储所有用户数据。在MySQL中构造用户数据
我会有一群用户,每个用户都会有一堆与他们账户绑定的数据。这是一个笔记应用程序,因此,对于每个用户,我都需要跟踪笔记的数量以及每个笔记的内容。
我该如何解决这个问题并将其翻译成MySQL表?我知道我必须做一些围绕链接(相关)表格的事情,但似乎无法查明它。
我有10x1GB数据库。
我正在设置一个新的Web服务,并且需要一些帮助来组织我的应用程序中的数据。我的应用程序是用PHP编写的,我计划使用MySQL数据库存储所有用户数据。在MySQL中构造用户数据
我会有一群用户,每个用户都会有一堆与他们账户绑定的数据。这是一个笔记应用程序,因此,对于每个用户,我都需要跟踪笔记的数量以及每个笔记的内容。
我该如何解决这个问题并将其翻译成MySQL表?我知道我必须做一些围绕链接(相关)表格的事情,但似乎无法查明它。
我有10x1GB数据库。
有以下表格(你可以选择你自己的名字);
tbl_users
int(4) userid (PRIMARY)
varchar(128) firstname
varchar(128) lastname
tbl_notes
int(8) noteid (PRIMARY)
int(4) userid
text notecontent
正如你所看到的,userid
是(1对多在这种情况下)两个表之间的关系。
尝试下列查询来创建表:
用户:
CREATE TABLE IF NOT EXISTS `users` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`password` varchar(255) DEFAULT NULL,
`email_address` varchar(96) NOT NULL,
`firstname` varchar(32) NOT NULL,
`lastname` varchar(32) NOT NULL,
`birth_date` datetime DEFAULT NULL,
`gender` char(1) DEFAULT NULL,
`street` varchar(16) NOT NULL,
`address` varchar(64) NOT NULL,
`city` varchar(32) NOT NULL,
`state` varchar(32) DEFAULT NULL,
`country` int(11) NOT NULL DEFAULT '0',
`postcode` varchar(10) NOT NULL,
`status` int(1) DEFAULT '0',
`created` datetime DEFAULT NULL,
`updated` datetime DEFAULT NULL
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
注:
CREATE TABLE IF NOT EXISTS `notes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userid` int(11) NOT NULL,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
`date_added` datetime NOT NULL,
`date_sent` datetime DEFAULT NULL,
`status` int(1) DEFAULT NULL,
`locked` int(1) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
那么什么这是个问题吗?如果表格是用正确的“关系”创建的,那么所有内容都将围绕适用的查询行进行汇总。 (以及为什么有多个数据库?) – user2864740 2014-09-13 05:08:56
开始。考虑一下有一个“注释”表,其中包含与单个笔记相关的所有信息。还有一列'user_id'(或类似的东西),它与用户表中的用户相关联。 – Jon 2014-09-13 05:10:06
在线有许多“SQL/RDBMS设计教程”,应该可能读一个(或几个)。 – user2864740 2014-09-13 05:10:49