智能简历平台Plus——数据库(3)

在一个网站中,需要存储和管理大量的数据信息,如用户账户、文章内容、图片视频等等。这些数据信息需要被有效地组织和管理,以便网站能够快速地响应用户请求,提供更好的用户体验。而一个数据库系统可以提供有效地数据存储和管理机制,可以将数据保存在表格中,以便于快速查找和修改。同时,数据库还可以提供多种数据查询和排序方式,使得网站开发人员可以更加方便地对数据进行处理和管理。

用户的个人信息、交易信息等都需要被保护,不受任何恶意攻击和非法获取。而一个数据库系统可以提供多种安全机制,如数据加密、用户权限管理等,来保护用户的数据信息。同时,数据库还可以提供备份和恢复机制,以便在数据出现意外损失时,可以及时恢复数据。

数据的读取和写入是非常频繁的操作。而一个高效的数据库系统可以提供高速的读写性能,以便网站能够更快地响应用户请求,提供更好的用户体验。同时,数据库系统还可以提供缓存机制,将常用的数据信息存储在内存中,以便更快地读取和处理。

需要涉及到多个系统的集成和扩展,如支付系统、邮件系统、社交媒体等。而一个数据库系统可以提供多种数据接口和数据格式,以便不同系统之间可以方便地进行数据交互和数据共享。同时,数据库还可以提供扩展机制,以便网站可以更加方便地进行功能扩展和业务升级。


具体代码实现

还需要一个数据库进行对简历的保存、修改以及后续的删除等功能

首先是创建用户详细信息表

FOREIGN KEY(user_id) REFERENCES users(id)指定了一个外键约束,它将user_details表中的user_id列与users表中的id列进行关联。这意味着在user_details表中,user_id列将引用users表中的id列,以确保在插入或更新数据时,user_id的值必须是users表中存在的id值。

在SQLite中,不需要显式定义外键所引用的列,但需要确保外键的定义是正确的,并且在执行操作时,数据的完整性约束得到了满足。因此,确保在插入或更新user_details表时,user_id的值必须是users表中已经存在的id值,这样就可以保证外键约束的有效性。

cursor.execute('''CREATE TABLE IF NOT EXISTS user_details
                  (user_id INTEGER PRIMARY KEY AUTOINCREMENT,
                   resume_name TEXT,
                   name TEXT,
                   age INTEGER,
                   gender TEXT,
                   email TEXT,
                   phone TEXT,
                   nation TEXT,
                   political_outlook TEXT,
                   address TEXT,
                   FOREIGN KEY(user_id) REFERENCES users(id))''')
conn.commit()

插入用户详细信息

def insert_user_detail(user_id, resume_name, name, age, gender, email, phone, nation, political_outlook, address):
    cursor.execute('''INSERT INTO user_details (user_id, resume_name, name, age, gender, email, phone, nation, political_outlook, address)
                      VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', (user_id, resume_name, name, age, gender, email, phone, nation, political_outlook, address))
    conn.commit()

测试一下:

# 测试插入功能
insert_user_detail(2, 'John resume', 'John', 30,'Male', 'john@example.com', '123456789', '汉','群众','123 Main St')

在 SQLiteStudio中已经出现了表格和插入的数据

 

修改用户详细信息

这个函数将接收用户的唯一标识符以及新的详细信息作为参数。然后,它将执行一个SQLUPDATE语句来更新相应的记录。 

def update_user_detail(user_id, resume_name=None, name=None, age=None, gender=None, email=None, phone=None, nation=None, political_outlook=None, address=None):
    # 构建更新语句的基本模板
    update_query = "UPDATE user_details SET"
    update_params = []

    # 构建SET子句,仅包括提供的非空参数
    if resume_name is not None:
        update_query += " resume_name = ?,"
        update_params.append(resume_name)
    if name is not None:
        update_query += " name = ?,"
        update_params.append(name)
    if age is not None:
        update_query += " age = ?,"
        update_params.append(age)
    if gender is not None:
        update_query += " gender = ?,"
        update_params.append(gender)
    if email is not None:
        update_query += " email = ?,"
        update_params.append(email)
    if phone is not None:
        update_query += " phone = ?,"
        update_params.append(phone)
    if nation is not None:
        update_query += " nation = ?,"
        update_params.append(nation)
    if political_outlook is not None:
        update_query += " political_outlook = ?,"
        update_params.append(political_outlook)
    if address is not None:
        update_query += " address = ?,"
        update_params.append(address)

    # 删除UPDATE语句末尾多余的逗号
    update_query = update_query.rstrip(',')

    # 添加WHERE子句来限制更新的行
    update_query += " WHERE user_id = ?"
    update_params.append(user_id)

    # 执行更新操作
    cursor.execute(update_query, update_params)
    conn.commit()

测试一下:

# 示例用法
update_user_detail(user_id=2, resume_name='New Resume', age=35, phone='987654321')

在 SQLiteStudio中已经出现了数据的修改

 

删除用户详细信息

def delete_user_detail(user_id):
    # 构建删除语句
    delete_query = "DELETE FROM user_details WHERE user_id = ?"

    # 执行删除操作
    cursor.execute(delete_query, (user_id,))
    conn.commit()

测试一下:

# 示例用法
insert_user_detail(5, 'Susan resume', 'Susan', 20,'Female', 'Susan@example.com', '556689', '汉','群众','777 Main St')
insert_user_detail(6, 'Bob resume', 'Bob', 60,'Male', 'Bob@example.com', '5111189', '汉','群众','767 Main St')
delete_user_detail(user_id=5)

在 SQLiteStudio中已经出现了数据的删除

后续还会针对网页的具体设计对数据库进行对应的修改 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值