- Purpose: Stores data for images relevant to displaying catalog entities (currently only Titles)
- Added ID_Folder to allow use of different base URLs via cat_folders.
- Removed WebSpec because nothing was using it and some of the data was missing and all of it used DOS-style paths.
- Description of WebSpec field was: should be considered the official location for the purposes of page display; only image admin functions should update it.
- 2010-11-16 Added WhenAdded and WhenEdited fields because... well, it's easy to do, and provides a secondary check against the event log.
- 2016-01-25 Added CatKey field as part of getting rid of cat_pages.
- Also finally removed WebSpec OLD from the actual data (was probably just a rename of WebSpec in 2010 in case removing it turned out to be a bad idea).
- CatKey is much like CatKey in every other type of record, i.e. it defines part of the URL -- in this case, the part after the Title. The value should be the same as updating all records with the following SQL: <mysql>CatKey=CONCAT_WS("-",Ab_Size,AttrFldr)</mysql>
- Spec (filesystem spec) can either be the official location of the file or can be updated from FileFerret using the IDFF data. It should eventually be renamed to something like FilePath, LocalSpec, StorSpec, SrcSpec...
- FileFerret columns:
- IDFF_File should always be set; this way, the file can be located if it gets moved. NOT NULL isn't required, though, because it may be necessary to find the file first and later request a FileFerret ID for it.
- IDFF_Fideal is set opportunistically, for now. Later on we may want to have a policy that all VbzCart images should have a Fideal, but this will be determined as FileFerret is worked out.
Spec should probably be renamed to something more specific like FilePath.
I had boldly planned to use FileFerret to manage image files, and towards that end had boldly removed any actual filespec information from this table, but then later realized that this was placing too much tight dependency on another entire subsystem. Maybe FileFerret should be responsible for keeping track of apps that use it, and for notifying them if any of their files are moved.
<mysql> CREATE TABLE `cat_images` (
ID INT NOT NULL AUTO_INCREMENT, isActive BOOL NOT NULL DEFAULT FALSE, CatKey VARCHAR(63) DEFAULT NULL COMMENT "change to NOT NULL after populating", ID_Folder INT NOT NULL COMMENT "base folder to which the Spec is relative", Spec VARCHAR(255) NOT NULL COMMENT "relative filespec for accessing image file", ID_Title INT NOT NULL COMMENT "titles.ID of title to which this image applies", Ab_Size VARCHAR(7) COMMENT "ImgSizes.Ab: abbreviation for image size class", AttrFldr VARCHAR(15) COMMENT "folder (key) name for images with this attribute", AttrDispl VARCHAR(64) COMMENT "description to display (e.g. in image tooltip) for this attribute", AttrSort VARCHAR(15) COMMENT "sorting order for this attribute", WhenAdded DATETIME DEFAULT NULL COMMENT "when this record was created", WhenEdited DATETIME DEFAULT NULL COMMENT "when this record was last updated", IDFF_File INT DEFAULT NULL COMMENT "FileFerret.Files.ID", IDFF_Fideal INT DEFAULT NULL COMMENT "FileFerret.Fideals.ID", PRIMARY KEY(`ID`) ) ENGINE = MYISAM;</mysql>