post_sources


Description

{“what”:“Associates a post (by slug) with an external source; one row per source.”,“why”:“Without it, the post’s citations and source links are missing.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.114337780+00:00”}

Columns

Column Type Size Nulls Auto Default Children Parents Comments
id serial 10 √ nextval('post_sources_id_seq'::regclass)

{“what”:“Unique numeric identifier for each source row.”,“why”:“Without it, rows cannot be uniquely referenced or updated.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.140372302+00:00”}

post_slug text 2147483647 null
post_brief.post_slug Implied Constraint R

{“what”:“Slug of the post this source is attached to.”,“why”:“Without it, sources cannot be associated with a specific post.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.273427667+00:00”}

ref_n int4 10 √ null

{“what”:“Optional numeric label (e.g., footnote number) for the source.”,“why”:“Without it, the source’s position or citation number in the post is unknown.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.454394818+00:00”}

publisher text 2147483647 √ null

{“what”:“Name of the organization or site that published the source.”,“why”:“Without it, the source’s origin and credibility cannot be assessed.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.497498871+00:00”}

title text 2147483647 √ null

{“what”:“Title of the source document or page.”,“why”:“Without it, the source cannot be identified or displayed in citations.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.512892047+00:00”}

year int4 10 √ null

{“what”:“Publication year of the source, as a four-digit number.”,“why”:“Without it, the source’s age and context are missing.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.576310857+00:00”}

source_url text 2147483647 null

{“what”:“URL where the source was originally found.”,“why”:“Without it, the source cannot be retrieved or verified.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.810476670+00:00”}

canonical_url text 2147483647 null

{“what”:“Preferred permanent URL for the source, if different from source_url.”,“why”:“Without it, link rot or redirects make the source unreachable.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.834542891+00:00”}

first_seen_at timestamptz 35,6 √ now()

{“what”:“Timestamp (with time zone) of when the source was first recorded.”,“why”:“Without it, the age of the source record and its discovery time are unknown.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T04:17:49.856486851+00:00”}

Indexes

Constraint Name Type Sort Column(s)
post_sources_pkey Primary key Asc id
idx_post_sources_canon Performance Asc canonical_url
post_sources_post_slug_canonical_url_key Must be unique Asc/Asc post_slug + canonical_url

Relationships