网络数据库系统开发实战——以建立一个公司官网为例


目录

1. 需求分析

2. 数据库功能分析及数据

3. 概要模型设计与逻辑结构的设计

4. 物理结构设计与数据库的实施

5. 网站功能设计与实现

6. 问题的设计用sql实现

7. 独特功能设计


视频演示

一、需求分析

       公司作为一种信息集散地,包含很多信息资源数据的管理。但现在存在着信息管理不规范、查找困难和信息冗余等问题。所以现在亟需建立一个公司官网旨在规范化信息管理工作,提高公司形象和用户体验。


二、数据库功能分析及数据


   一个公司官网的建立背后需要使用数据库来支持和管理各种信息,包括产品信息、用户购物车信息、招聘信息、留言信息、用户信息以及管理员信息。数据库的存在和使用能够有效地支持官网的各项功能,并提供数据的存储、检索和管理能力,确保公司官网的正常运行和信息的有序管理。

产品管理:该功能对公司官网产品进行管理。

公司产品管理:对产品编号,产品名称,价格,产品展示图片,管理员编号进行管理。

用户购物车产品管理:对产品编号,产品数量,用户编号进行管理。

招聘管理:该功能对公司官网招聘人才信息进行管理。

招聘管理:对人才编号,岗位名称,姓名,手机号码,电子邮件,教育背景,工作经历自我评价和特长,管理员编号进行管理。

留言管理:该功能对公司官网进行反馈管理。

留言管理:对留言编号,姓名,邮箱,留言,管理员编号进行管理。

使用者管理:该功能对公司官网的使用者进行管理。

管理员管理:对管理员编号,管理员密码进行管理。

用户管理:对用户编号,用户密码,管理员编号进行管理。


 三、概要模型设计与逻辑结构的设计


  3.1 ER图的设计

 

 3.2关系模式

1)Fjm_admins(adminId, adminPassWord, adminName)

2)Fjm_users(userId, userPassword, userName, adminId)

3)Fjm_job_applications(applicant_Id, job_title, education, email, self_evaluation, work_experience, phone, name, adminId)

4)Fjm_company_contacts(contactId, name, email, message, adminId)

5)Fjm_product(productId, productName, price, pic_url, adminId)

6)Fjm_shopping(shopId, number, productId, userId)


四、物理结构设计与数据库的实施


4.1数据库的建立

CREATE DATABASE ai_214820303;

4.2 创建管理员表

CREATE TABLE Fjm_admins (
adminId INT AUTO_INCREMENT PRIMARY KEY,
adminPassword VARCHAR(255) NOT NULL,
adminName VARCHAR(255) NOT NULL UNIQUE,
);

4.3创建用户表

CREATE TABLE Fjm_users (
	  userId INT AUTO_INCREMENT PRIMARY KEY,
  userPassword VARCHAR(255) NOT NULL,
userName VARCHAR(255) NOT NULL UNIQUE,
adminId INT NOT NULL,
  FOREIGN KEY (adminId) REFERENCES Fjm_admins(adminId)
);

4.4创建招聘表

CREATE TABLE Fjm_job_applications (
  applicant_Id INT AUTO_INCREMENT PRIMARY KEY,
  job_title VARCHAR(255) NOT NULL,
  education VARCHAR(255),
  email VARCHAR(255) NOT NULL,
  self_evaluation VARCHAR(255),
  work_experience VARCHAR(255),
  phone VARCHAR(255) NOT NULL,
  name VARCHAR(255) NOT NULL,
  adminId INT NOT NULL,
  FOREIGN KEY (adminId) REFERENCES Fjm_admins(adminId)
);

4.5创建留言表

CREATE TABLE Fjm_company_contacts (
  contactId INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255),
  email VARCHAR(255),
  message VARCHAR(255) NOT NULL,
  adminId INT NOT NULL,
  FOREIGN KEY (adminId) REFERENCES Fjm_admins(adminId)
);

4.6创建产品表

CREATE TABLE Fjm_product (
  productId INT AUTO_INCREMENT PRIMARY KEY,
  productName VARCHAR(255) NOT NULL,
  price DECIMAL(10,2) NOT NULL,
  pic_url VARCHAR(255) NOT NULL,
  adminId INT NOT NULL,
  FOREIGN KEY (adminId) REFERENCES Fjm_admins(adminId)
);

4.7创建购物车表

CREATE TABLE Fjm_shopping (
  shopId INT AUTO_INCREMENT PRIMARY KEY,
  number VARCHAR(255) NOT NULL,
  productId INT NOT NULL,
  userId INT NOT NULL,
  FOREIGN KEY (productId) REFERENCES Fjm_product(productId),
  FOREIGN KEY (userId) REFERENCES Fjm_users(userId)
);

五、网站功能设计与实现

如果没有特别注明,那么这些页面都是在无需登陆的情况下展示渲染出的

  • 5.1首页:展示公司形象。

本公司首页通过图片轮播展示多张图片,配合按钮控制和自动轮播功能,提供了视觉上的吸引力和动态效果。这种设计可以使公司官网 页面更加生动、吸引用户的注意,并提供了简单的导航和浏览体验。

  • 5.2关于我们(公司介绍,发展历程,发展规划):对公司进行简单介绍。

该页面展示了公司的介绍信息,包括公司的简介、发展历程以及发展规划。通过合适的排版和样式,使得信息清晰可读,并增强了页面的可视化效果。

  • 5.3产品购买:在官网进行产品的销售。

该产品购买页面以卡片式的方式展示了多个产品,用户可以通过选择数量并点击加入购物车按钮将产品添加到购物车中。页面设计简洁美观,用户体验良好,提供了直观的购买操作,方便用户浏览和购买产品。

(在未登陆情况下,使用者只能浏览产品,当点击加入购物车跳转到登陆界面) 

 

  • 5.4购物车:管理用户的产品。

该页面提供了购物车功能,显示了用户已选择的商品信息,并提供了移除商品和结算的操作。用户可以通过移除按钮删除不需要的商品,并随时查看购物车的总计金额以及商品搜索功能。这样的设计可以方便用户管理购物车内容,同时提供了清晰的购物车信息和结算操作,提示用户体验。

 

 (在未登陆情况下,使用者点击购物车后,直接跳转到登陆界面)

  • 5.5解决方案(车联网、智能制造):展示公司主要解决的方向。

该页面呈现了一个车联网信息安全解决方案的介绍,通过合适的排版和样式,使得信息清晰可读,并增强了页面的可视化效果。页面提供了关于网络安全、数据安全、物理安全、风险评估以及培训和教育等方面的解决方案,以保护车联网系统的安全性。

  •     5.6安全研究(安全技术、敬请期待):展示公司运用的技术。

该页面展示了有关ECU和CAN网络安全问题研究的内容,通过合适的排版和 样式,使得信息清晰可读,并增强了页面的可视化效果。页面提供了关于ECU 和CAN网络安全问题的背景和研究成果的描述,以及相关图片的展示,用于向 读者传达相关信息和研究进展。

  • 5.7招贤纳士:对公司进行人才招聘。

该页面提供了人才招聘的功能,具体指的是公司招聘部门及职位信息的展示和求职申请的提交。页面结构包括不同部门的介绍和各部门的职位信息,以及一个表单用于求职者提交个人信息和申请。

  • 5.8联系我们:实行留言管理,及时改进公司可能存在的问题。

  该页面提供了一种简单的方式让用户与公司进行沟通,可以通过填写表单或直接联系方式与公司取得联系。

  •     5.9登陆:实现用户及管理员的登陆。

该页面提供了登录的功能,用户可以通过填写用户名和密码进行身份验证,并选择是否以管理员身份登录。页面还提供了注册链接,允许用户进行新用户注册。(登陆成功后用session记录当前使用者的用户名)


   登陆成功后导航栏显示登陆者的用户名

 


再次点击按钮,退出登陆     


  • 5.10 注册:实现用户的注册。

    该页面提供了用户注册的功能,用户可以填写用户名、密码和确认密码进行账号注册。页面还提供了登录链接,允许已有用户进行登录操作。

  • 5.11 管理员模式:实现管理员对用户及产品的管理。

管理员以管理员身份登陆(已登陆!!)时,导航栏与用户登陆导航栏相比,多了一列“管理员模式”。

图5-11-1 用户模式导航栏 

图5-11-2 管理员模式导航栏 

5.11.1 用户管理

用户密码不明文显示 

 

 点击修改密码按钮修改密码

 点击显示密码按钮查看密码

点击删除用户按钮删除用户 

该页面展示了管理员管理用户的功能。它包括以下功能:

1. 修改密码功能:当管理员点击某个用户的"修改密码"按钮时,会弹出一个提示框,要求输入新的密码。输入新密码后,密码字段会更新为新密码,并通过Ajax请求将新密码发送到后端进行更新。

2. 显示密码功能:当管理员点击某个用户的"显示密码"按钮时,会弹出一个提示框,显示该用户的密码。

3. 删除用户功能:当管理员点击某个用户的"删除用户"按钮时,会弹出一个确认框,询问是否确定删除该用户。如果确认删除,相应的用户行将从表格中删除,并通过Ajax请求将该用户从后端数据库中删除。

4. 添加用户功能:管理员可以在页面底部的表单中输入新用户的ID和密码,并点击"添加用户"按钮。点击按钮后,新用户的信息将通过Ajax请求发送到后端进行添加,同时在表格中添加新的用户行。

5.11.2 产品管理

       原始产品管理列表及产品列表


 修改后的产品管理列表及产品列表 

该页面展示了一个管理员管理产品的功能。它包括以下功能:

1. 产品列表:通过模板语法,在表格中显示了已有产品的编号、价格、产品名称和图片地址,并为每个产品提供了更新和删除操作的按钮。

2. 更新产品功能:当管理员点击某个产品的"更新"按钮时,会获取该行输入框中的产品编号、价格、产品名称和图片地址,并通过Ajax请求将这些信息发送到后端进行更新。

3. 删除产品功能:当管理员点击某个产品的"删除"按钮时,会获取该行输入框中的产品编号,并通过Ajax请求将该产品从后端数据库中删除。删除成功后,该行将从表格中移除。

4. 添加产品功能:管理员可以在页面底部的表单中输入新产品的编号、价格、产品名称和图片地址,并点击"添加"按钮。点击按钮后,新产品的信息将通过Ajax请求发送到后端进行添加,同时在表格末尾插入新的产品行。


六、设计问题,并用sql实现

6.1数据插入

问题:向Fjm_users表中插入userName为User-003,userPassword为U-003的数据。

解答:
数据插入由下面代码实现,通过接收客户端通过POST请求发送的新用户的ID和密码,将其插入到MySQL数据库的Fjm_users表中,并返回成功或失败的消息。实现添加用户的功能,并将用户的信息持久化到数据库中。

  结果:

6.2数据修改

问题:将Fjm_users表中userName为User-001的userPassword修改为001

解答:

该代码的功能是接收客户端通过POST请求发送的新密码和用户ID,将其更新到MySQL数据库的Fjm_users表中对应用户的userPassWord列中,并返回成功或失败的消息。这段代码实现了修改用户密码的功能,通过用户ID来确定要更新的用户,并将新密码更新到数据库中。

6.3数据删除

问题:将Fjm_users表中userName为User-004的用户删除。
解答:

该代码的功能是通过用户名在数据库中查找用户并删除该用户。如果数据库中不存在具有给定用户名的用户,将执行删除操作并返回'success',否则将返回删除操作失败的异常信息。

 结果:

6.4数据查询
问题:查询Fjm_product表中有但Fjm_shopping表中没有相应产品。

解答:
该代码的功能是根据用户输入的用户名,查询数据库中未被该用户购买的商品。

 

 结果:


七、独特功能设计

它具有以下功能设计:

1. 用户注册和登录:通过`/register`和`/login`路由处理用户注册和登录的请求。在注册过程中,会将用户提供的用户名和密码存储在MySQL数据库中。在登录过程中,会检查用户名和密码是否匹配数据库中的记录,并使用Flask的`session`保存登录状态。

2. 用户注销:通过`/logout`路由处理用户注销的请求。在注销过程中,会清除当前用户的`session`信息。

3. 联系表单提交:通过`/contact`路由处理联系表单的提交。用户可以填写姓名、电子邮件和留言,并将这些数据存入MySQL数据库中的`FJM_company_contacts`表。

4. 数据展示和操作:通过不同的路由,实现了展示产品信息、购物车内容、用户列表等功能。例如,`/production`路由用于展示产品信息,`/shopCar`路由用于展示购物车内容,`/adminUser`路由用于展示用户列表。

5. 数据库操作:使用pymysql库与MySQL数据库进行交互,包括查询、插入和更新数据等操作。

6. 权限控制:通过`adminId`字段对用户进行权限控制。在数据库中,管理员用户的`adminId`值为"1",普通用户的`adminId`值为"3",其他值则表示不同的角色。

整体而言,本公司官网已经能满足一个公司官网所有有需要的功能设计。

猜你喜欢

转载自blog.csdn.net/weixin_64890968/article/details/131763533
今日推荐