===== Database Table Description of "folder" =====
=== Name ===
folder
=== Description ===
=== Purpose ===
=== Schema ===
create table folder (
identifier integer not null primary key,
parent_folder integer references folder(identifier),
users integer not null references users(identifier), -- the users who uploaded the picture, not necessarily the owner
caption text,
date_of_creation timestamp,
access_rights integer not null references access_type(identifier),
description text,
password text,,
date_changed timestamp without time zone,
event integer references calendar(identifier)
);
=== References tables ===
* access_rights references [[access_type sql table|access_type]](identifier)
* event references [[calendar sql table|calendar]](identifier)
* parent_folder references [[folder sql table|folder]](identifier) // **self reference** //
* users references [[users sql table|users]](identifier)
=== Is referenced by tables ===
* [[folder sql table|folder]](parent_folder) references identifier // **self reference** //
* [[photo sql table|photo]](folder) references identifier
=== Related sequences ===
* [[folder_id_sequence sql sequence|folder_id_sequence]]
=== Related indexes ===
* [[folder_event_idx sql index|folder_event_idx]]
* [[folder_id_idx sql index|folder_id_idx]] removed in 2.34
* [[folder_parent_idx sql index|folder_parent_idx]]
* [[folder_users_idx sql index|folder_users_idx]]
=== Related functions ===
* [[count_folders_by_user sql function|count_folders_by_user]]
* [[count_photos_by_user sql function|count_photos_by_user]]
* [[count_subfolders_by_folder sql function|count_subfolders_by_folder]]
=== Related views ===
None.
=== History ===
== Used first ==
Version 2.5
== Used last ==
Still in use
== Schema change history ==
= Version 2.5 =
create table folder (
identifier integer not null primary key,
parent_folder integer references folder(identifier),
users integer not null references users(identifier), -- the users who uploaded the picture, not necessarily the owner
caption text,
date_of_creation timestamp,
access_rights integer not null references access_type(identifier)
);
= Version 2.20 =
alter table folder add orderby integer;
= Version 2.26 =
alter table folder add column description text;
= Version 2.34 =
-- Add password support to folders
alter table folder add password text;
alter table folder add date_changed timestamp without time zone;
-- Drop 'orderby' fields; they're useless now.
alter table folder drop orderby;
-- Associate events with folders
alter table folder add column event integer references calendar(identifier);
== Data change history ==
= Version 2.5 =
insert into folder values (1, null, 1, 'Trash', now(), 3);
= Version 2.20 =
update folder set orderby = 1;
= Version 2.29 =
-- create a special Orphanage for deleted photos that were involved in some kind of transaction
insert into folder (identifier, parent_folder, users, caption, date_of_creation, access_rights, orderby, description)
select nextval('folder_id_sequence') as identifier,
null as parent_folder,
identifier as users,
'Orphanage' as caption,
now() as date_of_creation,
3 as access_rights,
7 as orderby,
null as description
from users;