creatDB.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import sqlite3
  2. def create_database():
  3. conn = sqlite3.connect('buff_prices.db')
  4. cursor = conn.cursor()
  5. # 商品主表
  6. cursor.execute('''
  7. CREATE TABLE IF NOT EXISTS products (
  8. id INTEGER PRIMARY KEY AUTOINCREMENT,
  9. buff_id INTEGER NOT NULL UNIQUE,
  10. name VARCHAR(500) NOT NULL,
  11. market_hash_name VARCHAR(255) NOT NULL UNIQUE,
  12. type VARCHAR(100),
  13. rarity VARCHAR(50),
  14. icon_url TEXT,
  15. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  16. updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  17. )
  18. ''')
  19. # 平台价格表
  20. cursor.execute('''
  21. CREATE TABLE IF NOT EXISTS platform_prices (
  22. id INTEGER PRIMARY KEY AUTOINCREMENT,
  23. product_id INTEGER NOT NULL,
  24. platform_code VARCHAR(20) NOT NULL,
  25. min_price DECIMAL(10,2),
  26. recorded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  27. FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE,
  28. UNIQUE(product_id, platform_code)
  29. )
  30. ''')
  31. # 创建索引
  32. cursor.execute('CREATE INDEX IF NOT EXISTS idx_products_market_hash ON products(market_hash_name)')
  33. cursor.execute('CREATE INDEX IF NOT EXISTS idx_platform_prices_product ON platform_prices(product_id)')
  34. conn.commit()
  35. conn.close()
  36. print("数据库创建成功")
  37. if __name__ == "__main__":
  38. create_database()