Ferret File System/v0.1/SQL/fideal: Difference between revisions

From Woozle Writes Code
Jump to navigation Jump to search
(pasting original version before modifying it, just for historical reference)
 
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
===fideals===
==About==
"[[../terms/fideal|Fideal]]" is short for "ideal file". A fideal is the abstract idealization of the particular set of bytes contained within a file which is a perfect representation of the original – i.e. it either ''is'' the original, or it is a perfect copy. ("Original file" might be as good a name, but in some cases the "original" may become corrupted and one of the copies may be more accurate; the "fideal" is how the file is ''supposed'' to be.) Fideal records are generally only created when multiple copies of the same file are found, though they may also be created manually in order to track more information about a file.
"{{l/fileferret|terms/fideal|Fideal}}" is short for "ideal file". A fideal represents what the file is supposed to be, e.g. a perfect copy of a particular document or media clip. – i.e. it either ''is'' the original, or it is a perfect copy. ("Original file" might be as good a name, but in some cases the "original" may become corrupted and one of the copies may be more accurate; the "fideal" is how the file is ''supposed'' to be.)
<mysql>CREATE TABLE `fideals` (
===History===
* '''2012-12-25''' removed any firev-specific fields; reorganized documentation
* '''2016-02-27''' renamed "fideals" -> "fideal"
===Fields===
* '''Title''' will probably end up being some form of the filename, possibly with disambiguating text prepended.
* '''Descr''': At some point I'll probably have some kind of syntax whereby this can refer to a wiki page for more info. Maybe just straight HTML? Or possibly we need a separate '''URL''' field.
* '''AutoDescr''' can be generated by the application which first goes looking for the fideal and which therefore may have more understanding of the fideal's purpose in life
===Rules===
* Fideal records are only created when:
** multiple copies of the same file are found
** a user wants to record information about what the file is supposed to represent (the fideal). In other words: if you want to describe the contents of a file, you don't; you describe the fideal. Files are localized instances (possibly imperfect copies) of fideals.
* Any {{l/fileferret|terms/firev|firev}} which is believed to be a perfect representation of the fideal will be marked as such (method yet to be determined).
==SQL==
<mysql>CREATE TABLE `fideal` (
   `ID`        INT NOT NULL AUTO_INCREMENT,
   `ID`        INT NOT NULL AUTO_INCREMENT,
   `Title`    VARCHAR(255) COMMENT "unique name for the file, wherever it may be found",
   `Title`    VARCHAR(255) COMMENT "unique name for the file, wherever it may be found",
   `Descr`    VARCHAR(255) COMMENT "description, or pointer to wiki page",
   `Descr`    VARCHAR(255) COMMENT "description",
   `AutoTitle` VARCHAR(255) COMMENT "automatically-generated title",
   `AutoTitle` VARCHAR(255) COMMENT "automatically-generated title",
   `AutoDescr` VARCHAR(255) COMMENT "automatically-generated description",
   `AutoDescr` VARCHAR(255) COMMENT "automatically-generated description",
  `FileSize`  INT          COMMENT "correct file size in bytes",
  `FileCkSum` INT          COMMENT "correct file checksum",
   PRIMARY KEY(`ID`)
   PRIMARY KEY(`ID`)
)
)
ENGINE = MYISAM;</mysql>
ENGINE = INNODB;</mysql>
* Basically, if you want to describe a file, you don't; you describe the fideal. Files are localized instances (possibly imperfect copies) of fideals.
* '''Title''' will probably end up being some form of the filename, possibly with disambiguating text prepended.
* At some point I'll probably have some kind of syntax whereby the '''Descr''' field can refer to a wiki page for more info. Maybe just straight HTML?
* '''AutoDescr''' can be generated by the application which first goes looking for the fideal and which therefore may have more understanding of the fideal's purpose in life
* It's not clear whether we need something more elaborate than just a 4-byte checksum, because there are so many different ways of generating this.

Latest revision as of 13:40, 25 February 2024

About

"Fideal" is short for "ideal file". A fideal represents what the file is supposed to be, e.g. a perfect copy of a particular document or media clip. – i.e. it either is the original, or it is a perfect copy. ("Original file" might be as good a name, but in some cases the "original" may become corrupted and one of the copies may be more accurate; the "fideal" is how the file is supposed to be.)

History

  • 2012-12-25 removed any firev-specific fields; reorganized documentation
  • 2016-02-27 renamed "fideals" -> "fideal"

Fields

  • Title will probably end up being some form of the filename, possibly with disambiguating text prepended.
  • Descr: At some point I'll probably have some kind of syntax whereby this can refer to a wiki page for more info. Maybe just straight HTML? Or possibly we need a separate URL field.
  • AutoDescr can be generated by the application which first goes looking for the fideal and which therefore may have more understanding of the fideal's purpose in life

Rules

  • Fideal records are only created when:
    • multiple copies of the same file are found
    • a user wants to record information about what the file is supposed to represent (the fideal). In other words: if you want to describe the contents of a file, you don't; you describe the fideal. Files are localized instances (possibly imperfect copies) of fideals.
  • Any firev which is believed to be a perfect representation of the fideal will be marked as such (method yet to be determined).

SQL

<mysql>CREATE TABLE `fideal` (

 `ID`        INT NOT NULL AUTO_INCREMENT,
 `Title`     VARCHAR(255) COMMENT "unique name for the file, wherever it may be found",
 `Descr`     VARCHAR(255) COMMENT "description",
 `AutoTitle` VARCHAR(255) COMMENT "automatically-generated title",
 `AutoDescr` VARCHAR(255) COMMENT "automatically-generated description",
 PRIMARY KEY(`ID`)

) ENGINE = INNODB;</mysql>