FileFerret/SQL/folders

fields

 * ID_Volume is the volume on which the folder appears.
 * NULL if volume is unknown -- e.g. we might not know what volume a remote Samba share is on
 * Name is not the full path, just the folder's filename. If it is the root folder of a volume (ID_Parent IS NULL), then Name should not be included as part of the path; drive letters and such are set in Mappings. Name must always be non-null, so this value is filled with something meaningless like "." if it is a root folder. (Maybe we'll put the volume name in there later.)
 * noScan is for blacklisting folders whose contents we really don't want to track, such as temp and trash areas which may become full of frequently-changing but useless clutter, or areas where things that aren't really files are kept (e.g. "/dev")
 * FirstFound and LastFound may need to be NULL for root folders. It's not clear why this happens (perhaps they were manually created -- but the code should have time-stamped them -- but possibly this was just an oversight, and wouldn't happen with production code).

history

 * 2013-06-30 Added ID_Volume field as part of general schema redesign.

SQL
CREATE TABLE `folders` ( `ID`          INT NOT NULL AUTO_INCREMENT,  `ID_Parent`   INT DEFAULT NULL      COMMENT "parent folder; NULL = filesystem root",  `ID_Volume`   INT DEFAULT NULL      COMMENT "volume on which this folder appears; NULL = unknown",  `Name`        VARCHAR(255) NOT NULL COMMENT "filesystem's name for the folder",  `Descr`       VARCHAR(255) DEFAULT NULL COMMENT "description for human consumption (optional; mainly for local roots)",  `WhenCreated` DATETIME DEFAULT NULL COMMENT "folder's creation timestamp, where available",  `WhenChanged` DATETIME DEFAULT NULL COMMENT "folder's modification timestamp, where available",  `FirstFound`  DATETIME DEFAULT NULL COMMENT "time/date when folder was first found during a scan",  `LastFound`   DATETIME DEFAULT NULL COMMENT "time/date when folder was most recently found during a scan",  `isFound`     BOOL DEFAULT FALSE    COMMENT "TRUE = was found on most recent scan", `noScan`     BOOL DEFAULT FALSE    COMMENT "TRUE = for whatever reason, don't bother scanning inside this folder", `wasDenied`  BOOL DEFAULT FALSE    COMMENT "TRUE = filesystem did not allow access on last scan attempt", `isRecur`    BOOL DEFAULT FALSE    COMMENT "TRUE = this folder is a repeat of a parent folder, probably due to a recursive link", PRIMARY KEY(`ID`) ) ENGINE = MYISAM;