我做了兩個表。第一個表格保存文件的元數據。在一個數據庫中組合兩個表
create table filemetadata (
id varchar(20) primary key ,
filename varchar(50),
path varchar(200),
size varchar(10),
author varchar(50)
) ;
+-------+-------------+---------+------+---------+
| id | filename | path | size | author |
+-------+-------------+---------+------+---------+
| 1 | abc.txt | c:\files| 2kb | eric |
+-------+-------------+---------+------+---------+
| 2 | xyz.docx | c:\files| 5kb | john |
+-------+-------------+---------+------+---------+
| 3 | pqr.txt |c:\files | 10kb | mike |
+-------+-------------+---------+------+---------+
第二張表包含關於上表中特定文件的「收藏」信息。
create table filefav (
fid varchar(20) primary key ,
id varchar(20),
favouritedby varchar(300),
favouritedtime varchar(10),
FOREIGN KEY (id) REFERENCES filemetadata(id)
) ;
+--------+------+-----------------+----------------+
| fid | id | favouritedby | favouritedtime |
+--------+------+-----------------+----------------+
| 1 | 1 | ross | 22:30 |
+--------+------+-----------------+----------------+
| 2 | 1 | josh | 12:56 |
+--------+------+-----------------+----------------+
| 3 | 2 | johny | 03:03 |
+--------+------+-----------------+----------------+
| 4 | 2 | sean | 03:45 |
+--------+------+-----------------+----------------+
這裏「ID」是一個外鍵。 第二個表是表示人已標明該文件爲他/她的最愛。 例如將文件abc.txt按id = 1個已被標記爲代表的最愛(見列favouritedby)由羅斯和Josh
所以我要做的就是讓一個表/視圖,顯示的信息如下 -
+-------+-------------+---------+------+---------+---------------+
| id | filename | path | size | author | favouritedby |
+-------+-------------+---------+------+---------+---------------+
| 1 | abc.txt | c:\files| 2kb | eric | ross, josh |
+-------+-------------+---------+------+---------+---------------+
| 2 | xyz.docx | c:\files| 5kb | john | johny, sean |
+-------+-------------+---------+------+---------+---------------+
| 3 | pqr.txt |c:\files | 10kb | mike | NULL |
+-------+-------------+---------+------+---------+---------------+
我如何做到這一點
?
查看'JOIN':http://dev.mysql.com/doc/refman/5.0/en/join.html –