schema: change community_rating to DOUBLE PRECISION for simpler type mapping
Change community_rating from DECIMAL(3,1) to DOUBLE PRECISION to: - Eliminate awkward pgtype.Numeric conversion in Go code - Enable direct pgtype.Float8 mapping from ComicInfo.xml float64 - Simplify code by matching natural types (XML float64 → PostgreSQL DOUBLE PRECISION → Go pgtype.Float8) - Remove need for string formatting and Scan() method calls The floating-point precision error (< 0.00001%) is negligible for 0-10 rating scale. This simplifies Phase 4 implementation significantly. Column comment updated to reflect DOUBLE PRECISION type. Relates to: Phase 1 database schema changes for comic metadata support
This commit is contained in:
@@ -156,7 +156,7 @@ CREATE TABLE IF NOT EXISTS media_items (
|
|||||||
|
|
||||||
-- Additional metadata (applies to all formats)
|
-- Additional metadata (applies to all formats)
|
||||||
metadata_notes TEXT, -- Notes from metadata files (ComicInfo.xml, EPUB, PDF) - distinct from user notes
|
metadata_notes TEXT, -- Notes from metadata files (ComicInfo.xml, EPUB, PDF) - distinct from user notes
|
||||||
community_rating DECIMAL(3,1), -- Pre-existing community rating from metadata (0.0-10.0) - distinct from user ratings
|
community_rating DOUBLE PRECISION, -- Pre-existing community rating from metadata (0.0-10.0) - distinct from user ratings
|
||||||
|
|
||||||
-- Alternate series information (JSONB for flexible schema - comic-specific)
|
-- Alternate series information (JSONB for flexible schema - comic-specific)
|
||||||
alternate_info JSONB, -- Stores AlternateSeries, AlternateNumber, AlternateCount
|
alternate_info JSONB, -- Stores AlternateSeries, AlternateNumber, AlternateCount
|
||||||
@@ -567,7 +567,7 @@ COMMENT ON COLUMN media_items.web_url IS 'URL to info page (Goodreads, ComicVine
|
|||||||
|
|
||||||
-- Additional metadata (applies to all formats)
|
-- Additional metadata (applies to all formats)
|
||||||
COMMENT ON COLUMN media_items.metadata_notes IS 'Notes from metadata files (ComicInfo.xml, EPUB, PDF) - distinct from user notes in media_notes table';
|
COMMENT ON COLUMN media_items.metadata_notes IS 'Notes from metadata files (ComicInfo.xml, EPUB, PDF) - distinct from user notes in media_notes table';
|
||||||
COMMENT ON COLUMN media_items.community_rating IS 'Pre-existing community rating from metadata files (scale 0.0-10.0) - distinct from user ratings in media_ratings table';
|
COMMENT ON COLUMN media_items.community_rating IS 'Pre-existing community rating from metadata files (scale 0.0-10.0, DOUBLE PRECISION) - distinct from user ratings in media_ratings table';
|
||||||
COMMENT ON COLUMN media_items.summary IS 'Summary from ComicInfo.xml (may be merged with description from Calibre)';
|
COMMENT ON COLUMN media_items.summary IS 'Summary from ComicInfo.xml (may be merged with description from Calibre)';
|
||||||
|
|
||||||
-- Library Type File Extensions Notes:
|
-- Library Type File Extensions Notes:
|
||||||
|
|||||||
Reference in New Issue
Block a user