classDiagram class accounts { varchar(160) acc_name varchar(160) acc_owner varchar(255) acc_url varbinary(255) acc_type varbinary(255) acc_key varbinary(255) acc_user varbinary(255) acc_pass varbinary(16) acc_timeout varbinary(512) acc_error int(11) acc_errors tinyint(1) acc_share tinyint(1) acc_sync int(11) retry_limit varbinary(500) share_path varbinary(16) share_size int(11) share_expires varbinary(500) sync_path varbinary(16) sync_status int(11) sync_interval datetime sync_date tinyint(1) sync_upload tinyint(1) sync_download tinyint(1) sync_filenames tinyint(1) sync_raw datetime created_at datetime updated_at datetime deleted_at int(10) unsigned id } class addresses { varbinary(42) cell_id varbinary(8) address_src float address_lat float address_lng varchar(255) address_line1 varchar(255) address_line2 varchar(32) address_zip varchar(128) address_city varchar(128) address_state varbinary(2) address_country varchar(1024) address_notes datetime created_at datetime updated_at datetime deleted_at int(11) id } class albums { varbinary(42) album_uid varbinary(42) parent_uid varbinary(160) album_slug varbinary(500) album_path varbinary(8) album_type varchar(160) album_title varchar(160) album_location varchar(100) album_category varchar(1024) album_caption varchar(2048) album_description varchar(1024) album_notes varbinary(2048) album_filter varbinary(32) album_order varbinary(255) album_template varchar(100) album_state varbinary(2) album_country int(11) album_year int(11) album_month int(11) album_day tinyint(1) album_favorite tinyint(1) album_private varbinary(128) thumb varbinary(8) thumb_src datetime created_at datetime updated_at datetime deleted_at int(10) unsigned id } class cameras { varbinary(160) camera_slug varchar(160) camera_name varchar(160) camera_make varchar(160) camera_model varchar(100) camera_type varchar(2048) camera_description varchar(1024) camera_notes datetime created_at datetime updated_at datetime deleted_at int(10) unsigned id } class categories { int(10) unsigned label_id int(10) unsigned category_id } class cells { varchar(200) cell_name varchar(100) cell_street varchar(50) cell_postcode varchar(50) cell_category varbinary(42) place_id datetime created_at datetime updated_at varbinary(42) id } class countries { varbinary(160) country_slug varchar(160) country_name varchar(2048) country_description varchar(1024) country_notes int(10) unsigned country_photo_id varbinary(2) id } class details { varchar(2048) keywords varbinary(8) keywords_src varchar(2048) notes varbinary(8) notes_src varchar(1024) subject varbinary(8) subject_src varchar(1024) artist varbinary(8) artist_src varchar(1024) copyright varbinary(8) copyright_src varchar(1024) license varbinary(8) license_src varchar(1024) software varbinary(8) software_src datetime created_at datetime updated_at int(10) unsigned photo_id } class duplicates { varbinary(128) file_hash bigint(20) file_size bigint(20) mod_time varbinary(755) file_name varbinary(16) file_root } class errors { datetime error_time varbinary(32) error_level varbinary(2048) error_message int(10) unsigned id } class faces { varbinary(8) face_src int(11) face_kind tinyint(1) face_hidden varbinary(42) subj_uid int(11) samples double sample_radius int(11) collisions double collision_radius mediumblob embedding_json datetime matched_at datetime created_at datetime updated_at varbinary(42) id } class files { int(10) unsigned photo_id varbinary(42) photo_uid datetime photo_taken_at varbinary(48) time_index varbinary(32) media_id bigint(20) media_utc varbinary(42) instance_id varbinary(42) file_uid varbinary(755) file_name varbinary(16) file_root varbinary(755) original_name varbinary(128) file_hash bigint(20) file_size varbinary(32) file_codec varbinary(16) file_type varbinary(16) media_type varbinary(64) file_mime tinyint(1) file_primary tinyint(1) file_sidecar tinyint(1) file_missing tinyint(1) file_portrait tinyint(1) file_video bigint(20) file_duration double file_fps int(11) file_frames int(11) file_width int(11) file_height int(11) file_orientation varbinary(64) file_projection float file_aspect_ratio tinyint(1) file_hdr tinyint(1) file_watermark varbinary(64) file_color_profile varbinary(16) file_main_color varbinary(9) file_colors varbinary(9) file_luminance int(11) file_diff smallint(6) file_chroma varchar(64) file_software varbinary(512) file_error bigint(20) mod_time datetime created_at bigint(20) created_in datetime updated_at bigint(20) updated_in datetime deleted_at int(10) unsigned id } class files_share { varbinary(16) status varbinary(512) error int(11) errors datetime created_at datetime updated_at int(10) unsigned file_id int(10) unsigned account_id varbinary(255) remote_name } class files_sync { int(10) unsigned file_id datetime remote_date bigint(20) remote_size varbinary(16) status varbinary(512) error int(11) errors datetime created_at datetime updated_at varbinary(255) remote_name int(10) unsigned account_id } class folders { varbinary(500) path varbinary(16) root varbinary(16) folder_type varchar(200) folder_title varchar(100) folder_category varchar(2048) folder_description varbinary(32) folder_order varbinary(2) folder_country int(11) folder_year int(11) folder_month int(11) folder_day tinyint(1) folder_favorite tinyint(1) folder_private tinyint(1) folder_ignore tinyint(1) folder_watch datetime created_at datetime updated_at datetime modified_at datetime deleted_at varbinary(42) folder_uid } class keywords { varchar(64) keyword tinyint(1) skip int(10) unsigned id } class labels { varbinary(42) label_uid varbinary(160) label_slug varbinary(160) custom_slug varchar(160) label_name int(11) label_priority tinyint(1) label_favorite varchar(2048) label_description varchar(1024) label_notes int(11) photo_count varbinary(128) thumb varbinary(8) thumb_src datetime created_at datetime updated_at datetime deleted_at int(10) unsigned id } class lenses { varbinary(160) lens_slug varchar(160) lens_name varchar(160) lens_make varchar(160) lens_model varchar(100) lens_type varchar(2048) lens_description varchar(1024) lens_notes datetime created_at datetime updated_at datetime deleted_at int(10) unsigned id } class links { varbinary(42) share_uid varbinary(160) share_slug varbinary(160) link_token int(11) link_expires int(10) unsigned link_views int(10) unsigned max_views tinyint(1) has_password tinyint(1) can_comment tinyint(1) can_edit datetime created_at datetime modified_at varbinary(42) link_uid } class markers { varbinary(42) file_uid varbinary(8) marker_type varbinary(8) marker_src varchar(160) marker_name tinyint(1) marker_review tinyint(1) marker_invalid varbinary(42) subj_uid varbinary(8) subj_src varbinary(42) face_id double face_dist mediumblob embeddings_json mediumblob landmarks_json float x float y float w float h int(11) q int(11) size smallint(6) score varbinary(128) thumb datetime matched_at datetime created_at datetime updated_at varbinary(42) marker_uid } class migrations { varchar(16) dialect varchar(255) error varchar(16) source datetime started_at datetime finished_at varchar(16) id } class passwords { varbinary(255) hash datetime created_at datetime updated_at varbinary(255) uid } class photos { varbinary(42) uuid datetime taken_at datetime taken_at_local varbinary(8) taken_src varbinary(42) photo_uid varbinary(8) photo_type varbinary(8) type_src varchar(200) photo_title varbinary(8) title_src varchar(4096) photo_description varbinary(8) description_src varbinary(500) photo_path varbinary(255) photo_name varbinary(755) original_name tinyint(4) photo_stack tinyint(1) photo_favorite tinyint(1) photo_private tinyint(1) photo_scan tinyint(1) photo_panorama varbinary(64) time_zone varbinary(42) place_id varbinary(8) place_src varbinary(42) cell_id int(11) cell_accuracy int(11) photo_altitude float photo_lat float photo_lng varbinary(2) photo_country int(11) photo_year int(11) photo_month int(11) photo_day int(11) photo_iso varbinary(64) photo_exposure float photo_f_number int(11) photo_focal_length smallint(6) photo_quality int(11) photo_faces smallint(6) photo_resolution smallint(6) photo_color int(10) unsigned camera_id varbinary(160) camera_serial varbinary(8) camera_src int(10) unsigned lens_id datetime created_at datetime updated_at datetime edited_at datetime checked_at datetime estimated_at datetime deleted_at int(10) unsigned id } class photos_albums { int(11) order tinyint(1) hidden tinyint(1) missing datetime created_at datetime updated_at varbinary(42) photo_uid varbinary(42) album_uid } class photos_keywords { int(10) unsigned photo_id int(10) unsigned keyword_id } class photos_labels { varbinary(8) label_src smallint(6) uncertainty int(10) unsigned photo_id int(10) unsigned label_id } class places { varchar(400) place_label varchar(100) place_district varchar(100) place_city varchar(100) place_state varbinary(2) place_country varchar(300) place_keywords tinyint(1) place_favorite int(11) photo_count datetime created_at datetime updated_at varbinary(42) id } class subjects { varbinary(8) subj_type varbinary(8) subj_src varbinary(160) subj_slug varchar(160) subj_name varchar(160) subj_alias varchar(2048) subj_bio varchar(1024) subj_notes tinyint(1) subj_favorite tinyint(1) subj_hidden tinyint(1) subj_private tinyint(1) subj_excluded int(11) file_count int(11) photo_count varbinary(128) thumb varbinary(8) thumb_src mediumblob metadata_json datetime created_at datetime updated_at datetime deleted_at varbinary(42) subj_uid } class users { int(11) address_id varbinary(42) user_uid varbinary(42) mother_uid varbinary(42) father_uid varbinary(42) global_uid varchar(128) full_name varchar(64) nick_name varchar(64) maiden_name varchar(64) artist_name varchar(64) user_name varchar(32) user_status tinyint(1) user_disabled longtext user_settings varchar(255) primary_email tinyint(1) email_confirmed varchar(255) backup_email varbinary(255) person_url varchar(32) person_phone varchar(32) person_status varbinary(255) person_avatar varchar(128) person_location text person_bio longtext person_accounts varbinary(255) business_url varchar(32) business_phone varchar(255) business_email varchar(128) company_name varchar(128) department_name varchar(64) job_title int(11) birth_year int(11) birth_month int(11) birth_day tinyint(1) terms_accepted tinyint(1) is_artist tinyint(1) is_subject tinyint(1) role_admin tinyint(1) role_guest tinyint(1) role_child tinyint(1) role_family tinyint(1) role_friend tinyint(1) webdav varbinary(500) storage_path tinyint(1) can_invite varbinary(32) invite_token varbinary(32) invited_by varbinary(64) confirm_token varbinary(64) reset_token varbinary(128) api_token varbinary(128) api_secret int(11) login_attempts datetime login_at datetime created_at datetime updated_at datetime deleted_at int(11) id } addresses --> cells : cell_id categories --> labels : label_id categories --> labels : category_id cells --> places : place_id details --> photos : photo_id files --> photos : photo_id files_share --> accounts : account_id files_share --> files : file_id files_sync --> accounts : account_id files_sync --> files : file_id markers --> faces : face_id markers --> subjects : subject_uid faces --> subjects : subject_uid photos --> cameras : camera_id photos --> cells : cell_id photos --> lenses : lens_id photos --> places : place_id photos --> countries : photo_country albums --> countries : album_country albums --> folders : path places --> countries : place_country photos_keywords --> keywords : keyword_id photos_keywords --> photos : photo_id photos_labels --> labels : label_id photos_labels --> photos : photo_id photos_albums --> albums : album_uid photos_albums --> photos : photo_uid users --> addresses : address_id users --> passwords : uid links --> albums : uid duplicates -- files