-- 数据库索引创建脚本
-- 此脚本用于优化应用性能，为常用查询字段创建索引

-- ============================================
-- 用户相关表索引
-- ============================================

-- users表索引
CREATE INDEX IF NOT EXISTS idx_users_userId ON users(userId);
CREATE INDEX IF NOT EXISTS idx_users_phoneNumber ON users(phoneNumber);
CREATE INDEX IF NOT EXISTS idx_users_type ON users(type);
CREATE INDEX IF NOT EXISTS idx_users_level ON users(level);
CREATE INDEX IF NOT EXISTS idx_users_created_at ON users(created_at);

-- ============================================
-- 管理员相关表索引
-- ============================================

-- managers表索引
CREATE INDEX IF NOT EXISTS idx_managers_id ON managers(id);
CREATE INDEX IF NOT EXISTS idx_managers_userName ON managers(userName);
CREATE INDEX IF NOT EXISTS idx_managers_managerId ON managers(managerId);
CREATE INDEX IF NOT EXISTS idx_managers_organization ON managers(organization);
CREATE INDEX IF NOT EXISTS idx_managers_managerdepartment ON managers(managerdepartment);

-- ============================================
-- 用户管理相关表索引
-- ============================================

-- usermanagements表索引
CREATE INDEX IF NOT EXISTS idx_usermanagements_userId ON usermanagements(userId);
CREATE INDEX IF NOT EXISTS idx_usermanagements_managerId ON usermanagements(managerId);
CREATE INDEX IF NOT EXISTS idx_usermanagements_userName ON usermanagements(userName);
CREATE INDEX IF NOT EXISTS idx_usermanagements_organization ON usermanagements(organization);
CREATE INDEX IF NOT EXISTS idx_usermanagements_managerdepartment ON usermanagements(managerdepartment);

-- ============================================
-- 产品相关表索引
-- ============================================

-- products表索引
CREATE INDEX IF NOT EXISTS idx_products_sellerId ON products(sellerId);
CREATE INDEX IF NOT EXISTS idx_products_created_at ON products(created_at);

-- ============================================
-- 购物车相关表索引
-- ============================================

-- cart_items表索引
CREATE INDEX IF NOT EXISTS idx_cart_items_userId ON cart_items(userId);
CREATE INDEX IF NOT EXISTS idx_cart_items_productId ON cart_items(productId);

-- ============================================
-- 企业相关表索引
-- ============================================

-- enterprise表索引 (假设存在)
CREATE INDEX IF NOT EXISTS idx_enterprise_id ON enterprise(id);
CREATE INDEX IF NOT EXISTS idx_enterprise_name ON enterprise(name);

-- ============================================
-- 联系方式相关表索引
-- ============================================

-- contacts表索引
CREATE INDEX IF NOT EXISTS idx_contacts_userId ON contacts(userId);

-- ============================================
-- 注意事项
-- ============================================
-- 1. 此脚本使用IF NOT EXISTS语法，可重复执行而不会报错
-- 2. 索引创建会占用额外的磁盘空间，提高写操作开销，但显著提升查询性能
-- 3. 建议在低峰期执行此脚本
-- 4. 执行后建议监控应用性能，确认优化效果
-- 5. 对于MySQL数据库，索引创建命令可能略有不同
-- ============================================

-- MySQL版本的部分索引创建语法示例（仅供参考）
-- ALTER TABLE users ADD INDEX idx_users_userId (userId);
-- ALTER TABLE users ADD INDEX idx_users_phoneNumber (phoneNumber);
-- 以此类推...