Skip to main content
Glama
schema_extended.sql3.89 kB
-- Database schema extension for 118th Congress legislative data -- This extends the existing schema with tables for processed XML data -- Bills table CREATE TABLE IF NOT EXISTS bills ( id INTEGER PRIMARY KEY AUTOINCREMENT, congress INTEGER NOT NULL, session INTEGER NOT NULL, bill_type VARCHAR(20) NOT NULL, bill_number INTEGER NOT NULL, bill_id VARCHAR(50) UNIQUE NOT NULL, title TEXT, official_title TEXT, sponsor_name_id VARCHAR(20), sponsor_name TEXT, sponsor_party VARCHAR(10), sponsor_state VARCHAR(10), introduced_date DATE, current_chamber VARCHAR(20), bill_stage VARCHAR(50), file_path TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Bill content sections CREATE TABLE IF NOT EXISTS bill_sections ( id INTEGER PRIMARY KEY AUTOINCREMENT, bill_id VARCHAR(50) NOT NULL, section_id VARCHAR(100), section_type VARCHAR(50), section_number VARCHAR(20), header TEXT, content TEXT, parent_section_id VARCHAR(100), level INTEGER DEFAULT 1, order_index INTEGER, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (bill_id) REFERENCES bills(bill_id) ON DELETE CASCADE ); -- Legislators CREATE TABLE IF NOT EXISTS legislators ( name_id VARCHAR(20) PRIMARY KEY, full_name TEXT NOT NULL, state VARCHAR(10), party VARCHAR(10), chamber VARCHAR(20), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Committees CREATE TABLE IF NOT EXISTS committees ( committee_id VARCHAR(20) PRIMARY KEY, name TEXT NOT NULL, chamber VARCHAR(20), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Bill cosponsors CREATE TABLE IF NOT EXISTS bill_cosponsors ( id INTEGER PRIMARY KEY AUTOINCREMENT, bill_id VARCHAR(50) NOT NULL, name_id VARCHAR(20) NOT NULL, cosponsored_date DATE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (bill_id) REFERENCES bills(bill_id) ON DELETE CASCADE, FOREIGN KEY (name_id) REFERENCES legislators(name_id) ON DELETE CASCADE ); -- Bill committees CREATE TABLE IF NOT EXISTS bill_committees ( id INTEGER PRIMARY KEY AUTOINCREMENT, bill_id VARCHAR(50) NOT NULL, committee_id VARCHAR(20) NOT NULL, activity_type VARCHAR(50) DEFAULT 'referral', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (bill_id) REFERENCES bills(bill_id) ON DELETE CASCADE, FOREIGN KEY (committee_id) REFERENCES committees(committee_id) ON DELETE CASCADE ); -- Create indexes for better performance CREATE INDEX IF NOT EXISTS idx_bills_congress_session ON bills(congress, session); CREATE INDEX IF NOT EXISTS idx_bills_bill_type ON bills(bill_type); CREATE INDEX IF NOT EXISTS idx_bills_sponsor ON bills(sponsor_name_id); CREATE INDEX IF NOT EXISTS idx_bills_introduced_date ON bills(introduced_date); CREATE INDEX IF NOT EXISTS idx_bill_sections_bill_id ON bill_sections(bill_id); CREATE INDEX IF NOT EXISTS idx_bill_sections_section_id ON bill_sections(section_id); CREATE INDEX IF NOT EXISTS idx_legislators_name_id ON legislators(name_id); CREATE INDEX IF NOT EXISTS idx_legislators_state ON legislators(state); CREATE INDEX IF NOT EXISTS idx_legislators_party ON legislators(party); CREATE INDEX IF NOT EXISTS idx_committees_committee_id ON committees(committee_id); CREATE INDEX IF NOT EXISTS idx_committees_chamber ON committees(chamber); CREATE INDEX IF NOT EXISTS idx_bill_cosponsors_bill_id ON bill_cosponsors(bill_id); CREATE INDEX IF NOT EXISTS idx_bill_cosponsors_name_id ON bill_cosponsors(name_id); CREATE INDEX IF NOT EXISTS idx_bill_committees_bill_id ON bill_committees(bill_id); CREATE INDEX IF NOT EXISTS idx_bill_committees_committee_id ON bill_committees(committee_id);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cbwinslow/opendiscourse_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server