拥有一个平面文件系统如何实现文件集合?

时间:2012-03-12 21:44:39

标签: sql sqlite

我很想实现自己的FS。我创建了这样的平面文件系统表:

CREATE TABLE IF NOT EXISTS files (
encoded_url varchar(300) UNIQUE NOT NULL primary key,
file_name varchar(150) NOT NULL,
user_name varchar(65) NOT NULL,
is_public BOOLEAN NOT NULL,
modified DATETIME NOT NULL default CURRENT_TIMESTAMP,
type varchar(20),
size INTEGER(8)
)

所以这里任何用户都可以拥有任意数量的文件。我想知道如何创建某种集合/一级文件夹系统,这样任何用户都可以将任意数量的文件放入他自己的集合中,以便他可以说在10个集合中有一个文件?如何查看创建此类表的查询?

1 个答案:

答案 0 :(得分:1)

你可以像这样创建表结构:

CREATE TABLE IF NOT EXISTS files (
    encoded_url varchar(300) UNIQUE NOT NULL primary key,
    file_name varchar(150) NOT NULL,
    user_name varchar(65) NOT NULL,
    is_public BOOLEAN NOT NULL,
    modified DATETIME NOT NULL default CURRENT_TIMESTAMP,
    type varchar(20),
    size INTEGER(8)
);

CREATE TABLE IF NOT EXISTS collections (
  .....
);

CREATE TABLE IF NOT EXISTS collection_relation (
      encoded_url ....,
      collections_key ....
);

通过这种方式,您可以拥有用户所需的任意数量的集合以及您希望的filecollection之间的任何关系。因此,当文件添加到集合中时,您需要在collection_relation中添加相应的行以指示该行。