我正在設置一個新的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