keywords


Description

{“what”:“A keyword record with search volume, difficulty, and optional post link.”,“why”:“Without it, keyword metrics and their post associations are lost, preventing SEO analysis.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:11.780073615+00:00”}

Columns

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

{“what”:“Unique integer identifier for each keyword row.”,“why”:“Without it, rows cannot be uniquely referenced or updated.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:11.791341624+00:00”}

keyword text 2147483647 null

{“what”:“Exact keyword phrase, e.g., ‘postgres indexing’.”,“why”:“Without it, the term being measured is unknown.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:11.812154997+00:00”}

search_volume int4 10 √ null

{“what”:“Average monthly search count for the keyword, if known.”,“why”:“Without it, keyword popularity is unknown, hindering prioritization.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:11.833594192+00:00”}

difficulty float4 8,8 √ null

{“what”:“Numeric difficulty score for ranking, higher means harder.”,“why”:“Without it, competition for the keyword cannot be assessed.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:11.847681498+00:00”}

last_generated_at timestamptz 35,6 √ null

{“what”:“Timestamp when the metrics were last fetched or generated.”,“why”:“Without it, data staleness is unknown, delaying refresh decisions.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:11.858440888+00:00”}

post_id int4 10 √ null
published_posts.id keywords_post_id_fkey R

{“what”:“Foreign key to the associated post, if any.”,“why”:“Without it, keywords cannot be linked to posts for content mapping.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:10:11.869321221+00:00”}

Indexes

Constraint Name Type Sort Column(s)
keywords_pkey Primary key Asc id
keywords_keyword_key Must be unique Asc keyword

Relationships