PhotoDB schema documentation

This documentation is generated automatically from the database schema itself with the ./dump-schema.pl script, using table and column comments embedded in the database

ACCESSORY

Table to catalog accessories that are not tracked in more specific tables

+-------------------+--------------+---------------------------------------+
| COLUMN_NAME       | COLUMN_TYPE  | COLUMN_COMMENT                        |
+-------------------+--------------+---------------------------------------+
| accessory_id      | int(11)      | Unique ID of this accessory           |
| accessory_type_id | int(11)      | ID of this type of accessory          |
| manufacturer_id   | int(11)      | ID of the manufacturer                |
| model             | varchar(45)  | Model of the accessory                |
| acquired          | date         | Date that this accessory was acquired |
| cost              | decimal(5,2) | Purchase cost of the accessory        |
| lost              | date         | Date that this accessory was lost     |
| lost_price        | decimal(5,2) | Sale price of the accessory           |
+-------------------+--------------+---------------------------------------+

ACCESSORY_COMPAT

Table to define compatibility between accessories and cameras or lenses

+--------------+-------------+----------------------------------+
| COLUMN_NAME  | COLUMN_TYPE | COLUMN_COMMENT                   |
+--------------+-------------+----------------------------------+
| compat_id    | int(11)     | Unique ID for this compatibility |
| accessory_id | int(11)     | ID of the accessory              |
| camera_id    | int(11)     | ID of the compatible camera      |
| lens_id      | int(11)     | ID of the compatible lens        |
+--------------+-------------+----------------------------------+

ACCESSORY_TYPE

Table to catalog types of photographic accessory

+-------------------+-------------+--------------------------------------+
| COLUMN_NAME       | COLUMN_TYPE | COLUMN_COMMENT                       |
+-------------------+-------------+--------------------------------------+
| accessory_type_id | int(11)     | Unique ID for this type of accessory |
| accessory_type    | varchar(45) | Type of accessory                    |
+-------------------+-------------+--------------------------------------+

ARCHIVE

Table to list all archives that exist for storing physical media

+-----------------+-------------+------------------------------------------------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT                                                               |
+-----------------+-------------+------------------------------------------------------------------------------+
| archive_id      | int(11)     | Unique ID of this archive                                                    |
| archive_type_id | int(11)     | ID of this type of archive                                                   |
| name            | varchar(45) | Name of this archive                                                         |
| max_width       | int(11)     | Maximum width of media that this archive can store                           |
| max_height      | int(11)     | Maximum height of media that this archive can store                          |
| location        | varchar(45) | Location of this archive                                                     |
| storage         | varchar(45) | The type of storage used for this archive, e.g. box, folder, ringbinder, etc |
| sealed          | tinyint(1)  | Whether or not this archive is sealed (closed to new additions)              |
+-----------------+-------------+------------------------------------------------------------------------------+

ARCHIVE_TYPE

Table to list the different types of archive available for materials

+-----------------+-------------+------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT               |
+-----------------+-------------+------------------------------+
| archive_type_id | int(11)     | Unique ID of archive type    |
| archive_type    | varchar(45) | Name of this type of archive |
+-----------------+-------------+------------------------------+

BATTERY

Table to catalog of types of battery

+--------------+--------------+-------------------------------------------------+
| COLUMN_NAME  | COLUMN_TYPE  | COLUMN_COMMENT                                  |
+--------------+--------------+-------------------------------------------------+
| battery_type | int(11)      | Unique battery ID                               |
| battery_name | varchar(45)  | Common name of the battery                      |
| voltage      | decimal(4,2) | Nominal voltage of the battery                  |
| chemistry    | varchar(45)  | Battery chemistry (e.g. Alkaline, Lithium, etc) |
| other_names  | varchar(45)  | Alternative names for this kind of battery      |
+--------------+--------------+-------------------------------------------------+

BODY_TYPE

Table to catalog types of camera body style

+--------------+-------------+---------------------------------------------------+
| COLUMN_NAME  | COLUMN_TYPE | COLUMN_COMMENT                                    |
+--------------+-------------+---------------------------------------------------+
| body_type_id | int(11)     | Unique body type ID                               |
| body_type    | varchar(45) | Name of camera body type (e.g. SLR, compact, etc) |
+--------------+-------------+---------------------------------------------------+

CAMERA

Table to catalog cameras - both cameras with fixed lenses and cameras with interchangeable lenses

+---------------------+--------------+------------------------------------------------------------------------------+
| COLUMN_NAME         | COLUMN_TYPE  | COLUMN_COMMENT                                                               |
+---------------------+--------------+------------------------------------------------------------------------------+
| camera_id           | int(11)      | Auto-incremented camera ID                                                   |
| manufacturer_id     | int(11)      | Denotes the manufacturer of the camera.                                      |
| model               | varchar(45)  | The model name of the camera                                                 |
| mount_id            | int(11)      | Denotes the lens mount of the camera if it is an interchangeable-lens camera |
| format_id           | int(11)      | Denotes the film format of the camera                                        |
| focus_type_id       | int(11)      | Denotes the focus type of the camera                                         |
| metering            | tinyint(1)   | Whether the camera has built-in metering                                     |
| coupled_metering    | tinyint(1)   | Whether the camera's meter is coupled automatically                          |
| metering_type_id    | int(11)      | Denotes the technology used in the meter                                     |
| body_type_id        | int(11)      | Denotes the style of camera body                                             |
| weight              | int(11)      | Weight of the camera body (without lens or batteries) in grammes (g)         |
| acquired            | date         | Date on which the camera was acquired                                        |
| cost                | decimal(6,2) | Price paid for the camera, in local currency units                           |
| introduced          | smallint(6)  | Year in which the camera model was introduced                                |
| discontinued        | smallint(6)  | Year in which the camera model was discontinued                              |
| serial              | varchar(45)  | Serial number of the camera                                                  |
| datecode            | varchar(12)  | Date code of the camera, if different from the serial number                 |
| manufactured        | smallint(6)  | Year of manufacture of the camera                                            |
| own                 | tinyint(1)   | Whether the camera is currently owned                                        |
| negative_size_id    | int(11)      | Denotes the size of negative made by the camera                              |
| shutter_type_id     | int(11)      | Denotes type of shutter                                                      |
| shutter_model       | varchar(45)  | Model of shutter                                                             |
| cable_release       | tinyint(1)   | Whether the camera has the facility for a remote cable release               |
| viewfinder_coverage | int(11)      | Percentage coverage of the viewfinder. Mostly applicable to SLRs.            |
| power_drive         | tinyint(1)   | Whether the camera has integrated motor drive                                |
| continuous_fps      | decimal(3,1) | The maximum rate at which the camera can shoot, in frames per second         |
| video               | tinyint(1)   | Whether the camera can take video/movie                                      |
| digital             | tinyint(1)   | Whether this is a digital camera                                             |
| fixed_mount         | tinyint(1)   | Whether the camera has a fixed lens                                          |
| lens_id             | int(11)      | If fixed_mount is true, specify the lens_id                                  |
| battery_qty         | int(11)      | Quantity of batteries needed                                                 |
| battery_type        | int(11)      | Denotes type of battery needed                                               |
| notes               | text         | Freeform text field for extra notes                                          |
| lost                | date         | Date on which the camera was lost/sold/etc                                   |
| lost_price          | decimal(6,2) | Price at which the camera was sold                                           |
| source              | varchar(150) | Where the camera was acquired from                                           |
| min_shutter         | varchar(10)  | Fastest available shutter speed, expressed like 1/400                        |
| max_shutter         | varchar(10)  | Slowest available shutter speed, expressed like 30 (no ")                    |
| bulb                | tinyint(1)   | Whether the camera supports bulb (B) exposure                                |
| time                | tinyint(1)   | Whether the camera supports time (T) exposure                                |
| min_iso             | int(11)      | Minimum ISO the camera will accept for metering                              |
| max_iso             | int(11)      | Maximum ISO the camera will accept for metering                              |
| af_points           | tinyint(4)   | Number of autofocus points                                                   |
| int_flash           | tinyint(1)   | Whether the camera has an integrated flash                                   |
| int_flash_gn        | tinyint(4)   | Guide number of internal flash                                               |
| ext_flash           | tinyint(1)   |  Whether the camera supports an external flash                               |
| flash_metering      | varchar(12)  | Flash metering protocol                                                      |
| pc_sync             | tinyint(1)   | Whether the camera has a PC sync socket for flash                            |
| hotshoe             | tinyint(1)   | Whether the camera has a hotshoe                                             |
| coldshoe            | tinyint(1)   | Whether the camera has a coldshoe or accessory shoe                          |
| x_sync              | varchar(6)   | X-sync shutter speed, expressed like 1/125                                   |
| meter_min_ev        | tinyint(4)   | Lowest EV/LV the built-in meter supports                                     |
| meter_max_ev        | tinyint(4)   | Highest EV/LV the built-in meter supports                                    |
| condition_id        | int(11)      | Denotes the cosmetic condition of the camera                                 |
| dof_preview         | tinyint(1)   | Whether the camera has depth of field preview                                |
| tripod              | tinyint(1)   | Whether the camera has a tripod bush                                         |
| display_lens        | int(11)      | Lens ID of the lens that this camera should normally be displayed with       |
+---------------------+--------------+------------------------------------------------------------------------------+

CONDITION

Table to list of physical condition descriptions that can be used to evaluate equipment

+--------------+--------------+---------------------------------------------------------------+
| COLUMN_NAME  | COLUMN_TYPE  | COLUMN_COMMENT                                                |
+--------------+--------------+---------------------------------------------------------------+
| condition_id | int(11)      | Unique condition ID                                           |
| code         | varchar(6)   | Condition shortcode (e.g. EXC)                                |
| name         | varchar(45)  | Full name of condition (e.g. Excellent)                       |
| min_rating   | int(11)      | The lowest percentage rating that encompasses this condition  |
| max_rating   | int(11)      | The highest percentage rating that encompasses this condition |
| description  | varchar(300) | Longer description of condition                               |
+--------------+--------------+---------------------------------------------------------------+

DEVELOPER

Table to list film and paper developers

+-----------------+-------------+---------------------------------------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT                                                      |
+-----------------+-------------+---------------------------------------------------------------------+
| developer_id    | int(11)     | Unique developer ID                                                 |
| manufacturer_id | int(11)     | Denotes the manufacturer ID                                         |
| name            | varchar(45) | Name of the developer                                               |
| for_paper       | tinyint(1)  | Whether this developer can be used with paper                       |
| for_film        | tinyint(1)  | Whether this developer can be used with film                        |
| chemistry       | varchar(45) | The key chemistry on which this developer is based (e.g. phenidone) |
+-----------------+-------------+---------------------------------------------------------------------+

ENLARGER

Table to list enlargers

+------------------+--------------+--------------------------------------------------------------+
| COLUMN_NAME      | COLUMN_TYPE  | COLUMN_COMMENT                                               |
+------------------+--------------+--------------------------------------------------------------+
| enlarger_id      | int(11)      | Unique enlarger ID                                           |
| manufacturer_id  | int(11)      | Manufacturer ID of the enlarger                              |
| enlarger         | varchar(45)  | Name/model of the enlarger                                   |
| negative_size_id | int(11)      | ID of the largest negative size that the enlarger can handle |
| acquired         | date         | Date on which the enlarger was acquired                      |
| lost             | date         | Date on which the enlarger was lost/sold                     |
| introduced       | year(4)      | Year in which the enlarger was introduced                    |
| discontinued     | year(4)      | Year in which the enlarger was discontinued                  |
| cost             | decimal(6,2) | Purchase cost of the enlarger                                |
| lost_price       | decimal(6,2) | Sale price of the enlarger                                   |
+------------------+--------------+--------------------------------------------------------------+

EXHIBIT

Table to record which prints were displayed in which exhibitions

+---------------+-------------+----------------------------+
| COLUMN_NAME   | COLUMN_TYPE | COLUMN_COMMENT             |
+---------------+-------------+----------------------------+
| exhibit_id    | int(11)     | Unique ID for this exhibit |
| exhibition_id | int(11)     | ID of the exhibition       |
| print_id      | int(11)     | ID of the print            |
+---------------+-------------+----------------------------+

EXHIBITION

Table to record exhibition events

+---------------+--------------+-------------------------------+
| COLUMN_NAME   | COLUMN_TYPE  | COLUMN_COMMENT                |
+---------------+--------------+-------------------------------+
| exhibition_id | int(11)      | Unique ID for this exhibition |
| title         | varchar(45)  | Title of the exhibition       |
| location      | varchar(100) | Location of the exhibition    |
| start_date    | date         | Start date of the exhibition  |
| end_date      | date         | End date of the exhibition    |
+---------------+--------------+-------------------------------+

EXPOSURE_PROGRAM

Exposure programs as defined by EXIF tag ExposureProgram

+---------------------+-------------+-----------------------------------------------------------------+
| COLUMN_NAME         | COLUMN_TYPE | COLUMN_COMMENT                                                  |
+---------------------+-------------+-----------------------------------------------------------------+
| exposure_program_id | int(11)     | ID of exposure program as defined by EXIF tag ExposureProgram   |
| exposure_program    | varchar(45) | Name of exposure program as defined by EXIF tag ExposureProgram |
+---------------------+-------------+-----------------------------------------------------------------+

EXPOSURE_PROGRAM_AVAILABLE

Table to associate cameras with available exposure programs

+---------------------+-------------+------------------------+
| COLUMN_NAME         | COLUMN_TYPE | COLUMN_COMMENT         |
+---------------------+-------------+------------------------+
| camera_id           | int(11)     | ID of camera           |
| exposure_program_id | int(11)     | ID of exposure program |
+---------------------+-------------+------------------------+

FILM

Table to list films which consist of one or more negatives. A film can be a roll film, one or more sheets of sheet film, one or more photographic plates, etc.

+-------------------+--------------+-----------------------------------------------------------------------+
| COLUMN_NAME       | COLUMN_TYPE  | COLUMN_COMMENT                                                        |
+-------------------+--------------+-----------------------------------------------------------------------+
| film_id           | int(11)      | Unique ID of the film                                                 |
| filmstock_id      | int(11)      | ID of the filmstock used                                              |
| exposed_at        | int(11)      | ISO at which the film was exposed                                     |
| format_id         | int(11)      | ID of the film format                                                 |
| date_loaded       | date         | Date when the film was loaded into a camera                           |
| date              | date         | Date when the film was processed                                      |
| camera_id         | int(11)      | ID of the camera that exposed this film                               |
| notes             | varchar(145) | Title of the film                                                     |
| frames            | int(11)      | Expected (not actual) number of frames from the film                  |
| developer_id      | int(11)      | ID of the developer used to process this film                         |
| directory         | varchar(100) | Name of the directory that contains the scanned images from this film |
| photographer_id   | int(11)      | ID of the photographer who took these pictures                        |
| dev_uses          | int(11)      | Numnber of previous uses of the developer                             |
| dev_time          | time         | Duration of development                                               |
| dev_temp          | decimal(3,1) | Temperature of development                                            |
| dev_n             | int(11)      | Number of the Push/Pull rating of the film, e.g. N+1, N-2             |
| development_notes | varchar(200) | Extra freeform notes about the development process                    |
| film_bulk_id      | int(11)      | ID of bulk film from which this film was cut                          |
| film_bulk_loaded  | date         | Date that this film was cut from a bulk roll                          |
| film_batch        | varchar(45)  | Batch number of the film                                              |
| film_expiry       | date         | Expiry date of the film                                               |
| purchase_date     | date         | Date this film was purchased                                          |
| price             | decimal(4,2) | Price paid for this film                                              |
| processed_by      | varchar(45)  | Person or place that processed this film                              |
| archive_id        | int(11)      | ID of the archive to which this film belongs                          |
+-------------------+--------------+-----------------------------------------------------------------------+

FILMSTOCK

Table to list different brands of film stock

+-----------------+-------------+----------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT                         |
+-----------------+-------------+----------------------------------------+
| filmstock_id    | int(11)     | Unique ID of the filmstock             |
| manufacturer_id | int(11)     | ID of the manufacturer of the film     |
| name            | varchar(45) | Name of the film                       |
| iso             | int(11)     | Nominal ISO speed of the film          |
| colour          | tinyint(1)  | Whether the film is colour             |
| process_id      | int(11)     | ID of the normal process for this film |
| panchromatic    | tinyint(1)  | Whether this film is panchromatic      |
+-----------------+-------------+----------------------------------------+

FILM_BULK

Table to record bulk film stock, from which individual films can be cut

+---------------+--------------+--------------------------------------------+
| COLUMN_NAME   | COLUMN_TYPE  | COLUMN_COMMENT                             |
+---------------+--------------+--------------------------------------------+
| film_bulk_id  | int(11)      | Unique ID of this bulk roll of film        |
| format_id     | int(11)      | ID of the format of this bulk roll         |
| filmstock_id  | int(11)      | ID of the filmstock                        |
| purchase_date | date         | Purchase date of this bulk roll            |
| cost          | decimal(5,2) | Purchase cost of this bulk roll            |
| source        | varchar(45)  | Place where this bulk roll was bought from |
| batch         | varchar(45)  | Batch code of this bulk roll               |
| expiry        | date         | Expiry date of this bulk roll              |
+---------------+--------------+--------------------------------------------+

FILTER

Table to catalog filters

+-----------------+--------------+---------------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE  | COLUMN_COMMENT                              |
+-----------------+--------------+---------------------------------------------+
| filter_id       | int(11)      | Unique filter ID                            |
| thread          | decimal(4,1) | Diameter of screw thread in mm              |
| type            | varchar(45)  | Filter type (e.g. Red, CPL, UV)             |
| attenuation     | decimal(2,1) | Attenuation of this filter in decimal stops |
| qty             | int(11)      | Quantity of these filters available         |
| manufacturer_id | int(11)      | Denotes the manufacturer of the filter.     |
+-----------------+--------------+---------------------------------------------+

FILTER_ADAPTER

Table to catalogue filter adapter rings

+-------------------+--------------+----------------------------------------------+
| COLUMN_NAME       | COLUMN_TYPE  | COLUMN_COMMENT                               |
+-------------------+--------------+----------------------------------------------+
| filter_adapter_id | int(11)      | Unique ID of filter adapter                  |
| camera_thread     | decimal(3,1) | Diameter of camera-facing screw thread in mm |
| filter_thread     | decimal(3,1) | Diameter of filter-facing screw thread in mm |
+-------------------+--------------+----------------------------------------------+

FLASH

Table to catlog flashes, flashguns and speedlights

+-------------------+--------------+-------------------------------------------------------------+
| COLUMN_NAME       | COLUMN_TYPE  | COLUMN_COMMENT                                              |
+-------------------+--------------+-------------------------------------------------------------+
| flash_id          | int(11)      | Unique ID of external flash unit                            |
| manufacturer_id   | int(11)      | Manufacturer ID of the flash                                |
| model             | varchar(45)  | Model name/number of the flash                              |
| guide_number      | int(11)      | Guide number of the flash                                   |
| gn_info           | varchar(45)  | Extra freeform info about how the guide number was measured |
| battery_powered   | tinyint(1)   | Whether this flash takes batteries                          |
| pc_sync           | tinyint(1)   | Whether the flash has a PC sync socket                      |
| hot_shoe          | tinyint(1)   | Whether the flash has a hot shoe connection                 |
| light_stand       | tinyint(1)   | Whether the flash can be used on a light stand              |
| battery_type_id   | int(11)      | ID of battery type                                          |
| battery_qty       | int(11)      | Quantity of batteries needed in this flash                  |
| manual_control    | tinyint(1)   | Whether this flash offers manual power control              |
| swivel_head       | tinyint(1)   | Whether this flash has a horizontal swivel head             |
| tilt_head         | tinyint(1)   | Whether this flash has a vertical tilt head                 |
| zoom              | tinyint(1)   | Whether this flash can zoom                                 |
| dslr_safe         | tinyint(1)   | Whether this flash is safe to use with a digital camera     |
| ttl               | tinyint(1)   | Whether this flash supports TTL metering                    |
| flash_protocol_id | int(11)      | ID of flash TTL metering protocol                           |
| trigger_voltage   | decimal(4,1) | Trigger voltage of the flash, in Volts                      |
| own               | tinyint(1)   | Whether we currently own this flash                         |
| acquired          | date         | Date this flash was acquired                                |
| cost              | decimal(5,2) | Purchase cost of this flash                                 |
+-------------------+--------------+-------------------------------------------------------------+

FLASH_PROTOCOL

Table to catalog different protocols used to communicate with flashes

+-------------------+-------------+------------------------------------------------------------+
| COLUMN_NAME       | COLUMN_TYPE | COLUMN_COMMENT                                             |
+-------------------+-------------+------------------------------------------------------------+
| flash_protocol_id | int(11)     | Unique ID of this flash protocol                           |
| manufacturer_id   | int(11)     | ID of the manufacturer that introduced this flash protocol |
| name              | varchar(45) | Name of the flash protocol                                 |
+-------------------+-------------+------------------------------------------------------------+

FOCUS_TYPE

Table to catalog different focusing methods

+---------------+-------------+-------------------------+
| COLUMN_NAME   | COLUMN_TYPE | COLUMN_COMMENT          |
+---------------+-------------+-------------------------+
| focus_type_id | int(11)     | Unique ID of focus type |
| focus_type    | varchar(45) | Name of focus type      |
+---------------+-------------+-------------------------+

FORMAT

Table to catalogue different film formats. These are distinct from negative sizes.

+-------------+-------------+-------------------------------------+
| COLUMN_NAME | COLUMN_TYPE | COLUMN_COMMENT                      |
+-------------+-------------+-------------------------------------+
| format_id   | int(11)     | Unique ID for this format           |
| format      | varchar(45) | The name of this film/sensor format |
| digital     | tinyint(1)  | Whether this is a digital format    |
+-------------+-------------+-------------------------------------+

LENS

Table to catalog lenses

+------------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| COLUMN_NAME            | COLUMN_TYPE  | COLUMN_COMMENT                                                                                                                              |
+------------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| lens_id                | int(11)      | Unique ID for this lens                                                                                                                     |
| mount_id               | int(11)      | Denotes the ID of the lens mount, if this is an interchangeable lens                                                                        |
| zoom                   | tinyint(1)   | Whether this is a zoom lens                                                                                                                 |
| min_focal_length       | int(11)      | Shortest focal length of this lens, in mm                                                                                                   |
| max_focal_length       | int(11)      | Longest focal length of this lens, in mm                                                                                                    |
| manufacturer_id        | int(11)      | ID of the manufacturer of this lens                                                                                                         |
| model                  | varchar(45)  | Model name of this lens                                                                                                                     |
| closest_focus          | int(11)      | The closest focus possible with this lens, in cm                                                                                            |
| max_aperture           | decimal(4,1) | Maximum (widest) aperture available on this lens (numerical part only, e.g. 2.8)                                                            |
| min_aperture           | decimal(4,1) | Minimum (narrowest) aperture available on this lens (numerical part only, e.g. 22)                                                          |
| elements               | int(11)      | Number of optical lens elements                                                                                                             |
| groups                 | int(11)      | Number of optical groups                                                                                                                    |
| weight                 | int(11)      | Weight of this lens, in grammes (g)                                                                                                         |
| nominal_min_angle_diag | int(11)      | Nominal minimum diagonal field of view from manufacturer's specs                                                                            |
| nominal_max_angle_diag | int(11)      | Nominal maximum diagonal field of view from manufacturer's specs                                                                            |
| aperture_blades        | int(11)      | Number of aperture blades                                                                                                                   |
| autofocus              | tinyint(1)   | Whether this lens has autofocus capability                                                                                                  |
| filter_thread          | decimal(4,1) | Diameter of lens filter thread, in mm                                                                                                       |
| magnification          | decimal(5,3) | Maximum magnification ratio of the lens, expressed like 0.765                                                                               |
| url                    | varchar(145) | URL to more information about this lens                                                                                                     |
| serial                 | varchar(45)  | Serial number of this lens                                                                                                                  |
| date_code              | varchar(45)  | Date code of this lens, if different from the serial number                                                                                 |
| introduced             | smallint(6)  | Year in which this lens model was introduced                                                                                                |
| discontinued           | smallint(6)  | Year in which this lens model was discontinued                                                                                              |
| manufactured           | smallint(6)  | Year in which this specific lens was manufactured                                                                                           |
| negative_size_id       | int(11)      | ID of the negative size which this lens is designed for                                                                                     |
| acquired               | date         | Date on which this lens was acquired                                                                                                        |
| cost                   | decimal(6,2) | Price paid for this lens in local currency units                                                                                            |
| fixed_mount            | tinyint(1)   | Whether this is a fixed lens (i.e. on a compact camera)                                                                                     |
| notes                  | text         | Freeform notes field                                                                                                                        |
| own                    | tinyint(1)   | Whether we currently own this lens                                                                                                          |
| lost                   | date         | Date on which lens was lost/sold/disposed                                                                                                   |
| lost_price             | decimal(6,2) | Price for which the lens was sold                                                                                                           |
| source                 | varchar(150) | Place where the lens was acquired from                                                                                                      |
| coating                | varchar(45)  | Notes about the lens coating type                                                                                                           |
| hood                   | varchar(45)  | Model number of the compatible lens hood                                                                                                    |
| exif_lenstype          | varchar(45)  | EXIF LensID number, if this lens has one officially registered. See documentation at http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/ |
| rectilinear            | tinyint(1)   | Whether this is a rectilinear lens                                                                                                          |
| length                 | int(11)      | Length of lens in mm                                                                                                                        |
| diameter               | int(11)      | Width of lens in mm                                                                                                                         |
| condition_id           | int(11)      | Denotes the cosmetic condition of the camera                                                                                                |
| image_circle           | int(11)      | Diameter of image circle projected by lens, in mm                                                                                           |
| formula                | varchar(45)  | Name of the type of lens formula (e.g. Tessar)                                                                                              |
| shutter_model          | varchar(45)  | Name of the integrated shutter, if any                                                                                                      |
+------------------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------+

LIGHT_METER

Table to catalog light meters

+-----------------+-------------+--------------------------------------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT                                                     |
+-----------------+-------------+--------------------------------------------------------------------+
| light_meter_id  | int(11)     | Unique ID for this light meter                                     |
| manufacturer_id | int(11)     | Denotes ID of manufacturer of the light meter                      |
| model           | varchar(45) | Model name or number of the light meter                            |
| metering_type   | int(11)     | ID of metering technology used in this light meter                 |
| reflected       | tinyint(1)  | Whether the meter is capable of reflected-light metering           |
| incident        | tinyint(1)  | Whether the meter is capable of incident-light metering            |
| flash           | tinyint(1)  | Whether the meter is capable of flash metering                     |
| spot            | tinyint(1)  | Whether the meter is capable of spot metering                      |
| min_asa         | int(11)     | Minimum ISO/ASA that this meter is capable of handling             |
| max_asa         | int(11)     | Maximum ISO/ASA that this meter is capable of handling             |
| min_lv          | int(11)     | Minimum light value (LV/EV) that this meter is capable of handling |
| max_lv          | int(11)     | Maximum light value (LV/EV) that this meter is capable of handling |
+-----------------+-------------+--------------------------------------------------------------------+

LOG

Table to store data modification logs

+-------------+--------------+-------------------------------------+
| COLUMN_NAME | COLUMN_TYPE  | COLUMN_COMMENT                      |
+-------------+--------------+-------------------------------------+
| log_id      | int(11)      | Unique ID of the log entry          |
| datetime    | datetime     | Timestamp for the log entry         |
| type        | varchar(45)  | Type of log message, e.g. ADD, EDIT |
| message     | varchar(450) | Log message                         |
+-------------+--------------+-------------------------------------+

MANUFACTURER

Table to catalog manufacturers of equipment and consumables

+-----------------+-------------+----------------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT                               |
+-----------------+-------------+----------------------------------------------+
| manufacturer_id | int(11)     | Unique ID of the manufacturer                |
| manufacturer    | varchar(45) | Name of the manufacturer                     |
| city            | varchar(45) | City in which the manufacturer is based      |
| country         | varchar(45) | Country in which the manufacturer is based   |
| url             | varchar(45) | URL to the manufacturer's main website       |
| founded         | smallint(6) | Year in which the manufacturer was founded   |
| dissolved       | smallint(6) | Year in which the manufacturer was dissolved |
+-----------------+-------------+----------------------------------------------+

METERING_MODE

Metering modes as defined by EXIF tag MeteringMode

+------------------+-------------+-----------------------------------------------------------+
| COLUMN_NAME      | COLUMN_TYPE | COLUMN_COMMENT                                            |
+------------------+-------------+-----------------------------------------------------------+
| metering_mode_id | int(11)     | ID of metering mode as defined by EXIF tag MeteringMode   |
| metering_mode    | varchar(45) | Name of metering mode as defined by EXIF tag MeteringMode |
+------------------+-------------+-----------------------------------------------------------+

METERING_MODE_AVAILABLE

Table to associate cameras with available metering modes

+------------------+-------------+---------------------+
| COLUMN_NAME      | COLUMN_TYPE | COLUMN_COMMENT      |
+------------------+-------------+---------------------+
| camera_id        | int(11)     | ID of camera        |
| metering_mode_id | int(11)     | ID of metering mode |
+------------------+-------------+---------------------+

METERING_TYPE

Table to catalog different metering technologies and cell types

+------------------+-------------+-------------------------------------------+
| COLUMN_NAME      | COLUMN_TYPE | COLUMN_COMMENT                            |
+------------------+-------------+-------------------------------------------+
| metering_type_id | int(11)     | Unique ID of the metering type            |
| metering         | varchar(45) | Name of the metering type (e.g. Selenium) |
+------------------+-------------+-------------------------------------------+

MOUNT

Table to catalog different lens mount standards. This is mostly used for camera lens mounts, but can also be used for enlarger and projector lenses.

+-----------------+-------------+----------------------------------------------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT                                                             |
+-----------------+-------------+----------------------------------------------------------------------------+
| mount_id        | int(11)     | Unique ID of this lens mount                                               |
| mount           | varchar(45) | Name of this lens mount (e.g. Canon FD)                                    |
| fixed           | tinyint(1)  | Whether this is a fixed (non-interchangable) lens mount                    |
| shutter_in_lens | tinyint(1)  | Whether this lens mount system incorporates the shutter into the lens      |
| type            | varchar(25) | The physical mount type of this lens mount (e.g. Screw, Bayonet, etc)      |
| purpose         | varchar(25) | The intended purpose of this lens mount (e.g. camera, enlarger, projector) |
| notes           | varchar(45) | Freeform notes field                                                       |
| digital_only    | tinyint(1)  | Whether this mount is intended only for digital cameras                    |
| manufacturer_id | int(11)     | Manufacturer ID of this lens mount, if applicable                          |
+-----------------+-------------+----------------------------------------------------------------------------+

MOUNT_ADAPTER

Table to catalog adapters to mount lenses on other cameras

+------------------+-------------+---------------------------------------------------------+
| COLUMN_NAME      | COLUMN_TYPE | COLUMN_COMMENT                                          |
+------------------+-------------+---------------------------------------------------------+
| mount_adapter_id | int(11)     | Unique ID of lens mount adapter                         |
| lens_mount       | int(11)     | ID of the mount used between the adapter and the lens   |
| camera_mount     | int(11)     | ID of the mount used between the adapter and the camera |
| has_optics       | tinyint(1)  | Whether this adapter includes optical elements          |
| infinity_focus   | tinyint(1)  | Whether this adapter allows infinity focus              |
| notes            | varchar(45) | Freeform notes                                          |
+------------------+-------------+---------------------------------------------------------+

MOVIE

Table to catalog motion picture films (movies)

+----------------+--------------+----------------------------------------------------+
| COLUMN_NAME    | COLUMN_TYPE  | COLUMN_COMMENT                                     |
+----------------+--------------+----------------------------------------------------+
| movie_id       | int(11)      | Unique ID for this motion picture film / movie     |
| title          | varchar(45)  | Title of this movie                                |
| camera_id      | int(11)      | ID of the camera used to shoot this movie          |
| lens_id        | int(11)      | ID of the lens used to shoot this movie            |
| format_id      | int(11)      | ID of the film format on which this movie was shot |
| sound          | tinyint(1)   | Whether this movie has sound                       |
| fps            | int(11)      | Frame rate of this movie, in fps                   |
| filmstock_id   | int(11)      | ID of the filmstock used to shoot this movie       |
| feet           | int(11)      | Length of this movie in feet                       |
| date_loaded    | date         | Date that the filmstock was loaded into a camera   |
| date_shot      | date         | Date on which this movie was shot                  |
| date_processed | date         | Date on which this movie was processed             |
| process_id     | int(11)      | ID of the process used to develop this film        |
| description    | varchar(100) | Table to catalog motion picture films (movies)     |
+----------------+--------------+----------------------------------------------------+

NEGATIVE

Table to catalog negatives (which includes positives/slide too). Negatives are created by cameras, belong to films and can be used to create scans or prints.

+------------------+--------------+------------------------------------------------------------------------------------------+
| COLUMN_NAME      | COLUMN_TYPE  | COLUMN_COMMENT                                                                           |
+------------------+--------------+------------------------------------------------------------------------------------------+
| negative_id      | int(11)      | Unique ID of this negative                                                               |
| film_id          | int(11)      | ID of the film that this negative belongs to                                             |
| frame            | varchar(5)   | Frame number or code of this negative                                                    |
| description      | varchar(145) | Caption of this picture                                                                  |
| date             | datetime     | Date & time on which this picture was taken                                              |
| lens_id          | int(11)      | ID of lens used to take this picture                                                     |
| shutter_speed    | varchar(45)  | Shutter speed used to take this picture                                                  |
| aperture         | decimal(4,1) | Aperture used to take this picture (numerical part only)                                 |
| filter_id        | int(11)      | ID of filter used to take this picture                                                   |
| teleconverter_id | int(11)      | ID of teleconverter used to take this picture                                            |
| notes            | text         | Extra freeform notes about this exposure                                                 |
| mount_adapter_id | int(11)      | ID of lens mount adapter used to take this pciture                                       |
| focal_length     | int(11)      | If a zoom lens was used, specify the focal length of the lens                            |
| latitude         | decimal(9,6) | Latitude of the location where the picture was taken                                     |
| longitude        | decimal(9,6) | Longitude of the location where the picture was taken                                    |
| flash            | tinyint(1)   | Whether flash was used                                                                   |
| metering_mode    | int(11)      | MeteringMode ID as defined in EXIF spec                                                  |
| exposure_program | int(11)      | ExposureProgram ID as defined in EXIF spec                                               |
| photographer_id  | int(11)      | ID of person who took this photograph                                                    |
| copy_of          | int(11)      | Negative ID of negative from which this negative is reproduced/duplicated/rephotographed |
+------------------+--------------+------------------------------------------------------------------------------------------+

NEGATIVE_SIZE

Table to catalog different negative sizes available. Negtives sizes are distinct from film formats.

+------------------+--------------+---------------------------------------------------------------------------------------------------+
| COLUMN_NAME      | COLUMN_TYPE  | COLUMN_COMMENT                                                                                    |
+------------------+--------------+---------------------------------------------------------------------------------------------------+
| negative_size_id | int(11)      | Unique ID of negative size                                                                        |
| width            | decimal(4,1) | Width of the negative size in mm                                                                  |
| height           | decimal(4,1) | Height of the negative size in mm                                                                 |
| negative_size    | varchar(45)  | Common name of the negative size (e.g. 35mm, 6x7, etc)                                            |
| crop_factor      | decimal(4,2) | Crop factor of this negative size                                                                 |
| area             | int(11)      | Area of this negative size in sq. mm                                                              |
| aspect_ratio     | decimal(4,2) | Aspect ratio of this negative size, expressed as a single decimal. (e.g. 3:2 is expressed as 1.5) |
+------------------+--------------+---------------------------------------------------------------------------------------------------+

PAPER_STOCK

Table to catalog different paper stocks available

+-----------------+-------------+--------------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT                             |
+-----------------+-------------+--------------------------------------------+
| paper_stock_id  | int(11)     | Unique ID of this paper stock              |
| name            | varchar(45) | Name of this paper stock                   |
| manufacturer_id | int(11)     | ID of the manufacturer of this paper stock |
| resin_coated    | tinyint(1)  | Whether the paper is resin-coated          |
| tonable         | tinyint(1)  | Whether this paper accepts chemical toning |
| colour          | tinyint(1)  | Whether this is a colour paper             |
| finish          | varchar(45) | The finish of the paper surface            |
+-----------------+-------------+--------------------------------------------+

PERSON

Table to catalog photographers

+-------------+-------------+--------------------------+
| COLUMN_NAME | COLUMN_TYPE | COLUMN_COMMENT           |
+-------------+-------------+--------------------------+
| person_id   | int(11)     | Unique ID for the person |
| name        | varchar(45) | Name of the photographer |
+-------------+-------------+--------------------------+

PRINT

Table to catalog prints made from negatives

+--------------------+--------------+-------------------------------------------------------------------------+
| COLUMN_NAME        | COLUMN_TYPE  | COLUMN_COMMENT                                                          |
+--------------------+--------------+-------------------------------------------------------------------------+
| print_id           | int(11)      | Unique ID for the print                                                 |
| negative_id        | int(11)      | ID of the negative that this print was made from                        |
| date               | date         | The date that the print was made                                        |
| paper_stock_id     | int(11)      | ID of the paper stock used                                              |
| height             | decimal(4,1) | Height of the print in inches                                           |
| width              | decimal(4,1) | Width of the print in inches                                            |
| aperture           | decimal(3,1) | Aperture used to make this print (numerical part only, e.g. 5.6)        |
| exposure_time      | decimal(5,1) | Exposure time of this print in seconds                                  |
| filtration_grade   | decimal(2,1) | Contrast grade of paper used                                            |
| development_time   | int(11)      | Development time of this print in seconds                               |
| bleach_time        | time         | Duration of bleaching                                                   |
| toner_id           | int(11)      | ID of the first toner used to make this print                           |
| toner_dilution     | varchar(6)   | Dilution of the first toner used to make this print                     |
| toner_time         | time         | Duration of first toning                                                |
| 2nd_toner_id       | int(11)      | ID of the second toner used to make this print                          |
| 2nd_toner_dilution | varchar(6)   | Dilution of the second toner used to make this print                    |
| 2nd_toner_time     | time         | Duration of second toning                                               |
| own                | tinyint(1)   | Whether we currently own this print                                     |
| location           | varchar(45)  | The place where this print is currently                                 |
| sold_price         | decimal(5,2) | Sale price of the print                                                 |
| enlarger_id        | int(11)      | ID of the enlarger used to make this print                              |
| lens_id            | int(11)      | ID of the lens used to make this print                                  |
| developer_id       | int(11)      | ID of the developer used to develop this print                          |
| fine               | tinyint(1)   | Whether this is a fine print                                            |
| notes              | text         | Freeform notes about this print, e.g. dodging, burning & complex toning |
| archive_id         | int(11)      | ID of the archive to which this print belongs                           |
| printer_id         | int(11)      | ID of the person who made this print                                    |
+--------------------+--------------+-------------------------------------------------------------------------+

PROCESS

Table to catalog chemical processes that can be used to develop film and paper

+-------------+-------------+----------------------------------------------------+
| COLUMN_NAME | COLUMN_TYPE | COLUMN_COMMENT                                     |
+-------------+-------------+----------------------------------------------------+
| process_id  | int(11)     | ID of this development process                     |
| name        | varchar(12) | Name of this developmenmt process (e.g. C-41, E-6) |
| colour      | tinyint(1)  | Whether this is a colour process                   |
| positive    | tinyint(1)  | Whether this is a positive/reversal process        |
+-------------+-------------+----------------------------------------------------+

PROJECTOR

Table to catalog projectors (still and movie)

+------------------+-------------+--------------------------------------------------------------------------+
| COLUMN_NAME      | COLUMN_TYPE | COLUMN_COMMENT                                                           |
+------------------+-------------+--------------------------------------------------------------------------+
| projector_id     | int(11)     | Unique ID of this projector                                              |
| manufacturer_id  | int(11)     | ID of the manufacturer of this projector                                 |
| model            | varchar(45) | Model name of this projector                                             |
| mount_id         | int(11)     | ID of the lens mount of this projector, if it has interchangeable lenses |
| negative_size_id | int(11)     | ID of the largest negative size that this projector can handle           |
| own              | tinyint(1)  | Whether we currently own this projector                                  |
| cine             | tinyint(1)  | Whether this is a cine (movie) projector                                 |
+------------------+-------------+--------------------------------------------------------------------------+

REPAIR

Tabe to catalog all repairs and servicing undertaken on cameras and lenses in the collection

+-------------+--------------+----------------------------------+
| COLUMN_NAME | COLUMN_TYPE  | COLUMN_COMMENT                   |
+-------------+--------------+----------------------------------+
| repair_id   | int(11)      | Unique ID for the repair job     |
| camera_id   | int(11)      | ID of camera that was repaired   |
| lens_id     | int(11)      | ID of lens that was repaired     |
| date        | date         | The date of the repair           |
| summary     | varchar(100) | Brief summary of the repair      |
| description | varchar(500) | Longer description of the repair |
+-------------+--------------+----------------------------------+

SCAN

Table to record all the images that have been scanned digitally

+-------------+--------------+---------------------------------------+
| COLUMN_NAME | COLUMN_TYPE  | COLUMN_COMMENT                        |
+-------------+--------------+---------------------------------------+
| scan_id     | int(11)      | Unique ID for this scan               |
| negative_id | int(11)      | ID of the negative that was scanned   |
| print_id    | int(11)      | ID of the print  that was scanned     |
| filename    | varchar(128) | Filename of the scan                  |
| date        | date         | Date that this scan was made          |
| colour      | tinyint(1)   | Whether this is a colour image        |
| width       | int(11)      | Width of the scanned image in pixels  |
| height      | int(11)      | Height of the scanned image in pixels |
+-------------+--------------+---------------------------------------+

SHUTTER_SPEED

Table to list all possible shutter speeds

+---------------+--------------+--------------------------------------------------+
| COLUMN_NAME   | COLUMN_TYPE  | COLUMN_COMMENT                                   |
+---------------+--------------+--------------------------------------------------+
| shutter_speed | varchar(10)  | Shutter speed in fractional notation, e.g. 1/250 |
| duration      | decimal(7,5) | Shutter speed in decimal notation, e.g. 0.04     |
+---------------+--------------+--------------------------------------------------+

SHUTTER_SPEED_AVAILABLE

Table to associate cameras with shutter speeds

+---------------+-------------+------------------------------------+
| COLUMN_NAME   | COLUMN_TYPE | COLUMN_COMMENT                     |
+---------------+-------------+------------------------------------+
| camera_id     | int(11)     | ID of the camera                   |
| shutter_speed | varchar(10) | Shutter speed that this camera has |
+---------------+-------------+------------------------------------+

SHUTTER_TYPE

Table to catalog the different types of camera shutter

+-----------------+-------------+--------------------------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT                                         |
+-----------------+-------------+--------------------------------------------------------+
| shutter_type_id | int(11)     | Unique ID of the shutter type                          |
| shutter_type    | varchar(45) | Name of the shutter type (e.g. Focal plane, Leaf, etc) |
+-----------------+-------------+--------------------------------------------------------+

TELECONVERTER

Table to catalog teleconverters (multipliers)

+------------------+--------------+----------------------------------------------------------------------------+
| COLUMN_NAME      | COLUMN_TYPE  | COLUMN_COMMENT                                                             |
+------------------+--------------+----------------------------------------------------------------------------+
| teleconverter_id | int(11)      | Unique ID of this teleconverter                                            |
| mount_id         | int(11)      | ID of the lens mount used by this teleconverter                            |
| factor           | decimal(4,2) | Magnification factor of this teleconverter (numerical part only, e.g. 1.4) |
| manufacturer_id  | int(11)      | ID of the manufacturer of this teleconverter                               |
| model            | varchar(45)  | Model name of this teleconverter                                           |
| elements         | tinyint(4)   | Number of optical elements used in this teleconverter                      |
| groups           | tinyint(4)   | Number of optical groups used in this teleconverter                        |
| multicoated      | tinyint(1)   | Whether this teleconverter is multi-coated                                 |
+------------------+--------------+----------------------------------------------------------------------------+

TONER

Table to catalog paper toners that can be used during the printing process

+-----------------+-------------+-------------------------------------+
| COLUMN_NAME     | COLUMN_TYPE | COLUMN_COMMENT                      |
+-----------------+-------------+-------------------------------------+
| toner_id        | int(11)     | Unique ID of the toner              |
| manufacturer_id | int(11)     | ID of the manufacturer of the toner |
| toner           | varchar(45) | Name of the toner                   |
| formulation     | varchar(45) | Chemical formulation of the toner   |
| stock_dilution  | varchar(10) | Stock dilution of the toner         |
+-----------------+-------------+-------------------------------------+

TO_PRINT

Table to catalogue negatives that should be printed

+-------------+-------------+---------------------------------+
| COLUMN_NAME | COLUMN_TYPE | COLUMN_COMMENT                  |
+-------------+-------------+---------------------------------+
| id          | int(11)     | Unique ID of this table         |
| negative_id | int(11)     | Negative ID to be printed       |
| width       | int(11)     | Width of print to be made       |
| height      | int(11)     | Height of print to be made      |
| printed     | tinyint(1)  | Whether the print has been made |
| print_id    | int(11)     | ID of print made                |
| recipient   | varchar(45) | Recipient of the print          |
| added       | date        | Date that record was added      |
+-------------+-------------+---------------------------------+

schema_migrations

Table to record schema migrations

+--------------+--------------+-------------------------------+
| COLUMN_NAME  | COLUMN_TYPE  | COLUMN_COMMENT                |
+--------------+--------------+-------------------------------+
| name         | varchar(255) | Filename of applied migration |
| date_applied | datetime     | Date migration was applied    |
+--------------+--------------+-------------------------------+