综合问题

设计问卷系统后台(2021/4/9)

假定,一个电影垂直交流社区网站已经运营了一段时间,为提高成员质量,现决定增加"知识考核"功能,现请你设计一个问卷系统后台,需求如下:

  • 从电影数据库中,随机抽取数据,生成题目,再由题目组成问卷,已经生成过的题目可重复使用。
  • 题型只有一种连线题,即将左边五条同类数据(例如电影名)与右边五条另一类数据(例如导演名)两两连线。
  • 问卷可以自动评分。
  • 每道题的答案可以统计正确率。

题目示例:

示例1:
-------------------------
请连接以下导演与电影作品:
大卫·芬奇		《霸王别姬》
诺兰			 《香魂女》
陈凯歌			 《教父》
科波拉			 《七宗罪》
谢飞			  《盗梦空间》

示例2:
-------------------------
请连接以下合作过的导演与演员:
章子怡				徐峥
徐峥				 田壮壮
王宝强				娄烨
张震				宁浩
巩俐				张艺谋

而网站现有数据库表结构如下:

user						用户表
user_id 					自增id
username varchar(100)		用户名
user_password char(40)		密码
user_create_at	timestamp	创建时间
user_status tinyint			用户状态

movie									电影数据表
movie_id								自增id
movie_name	varchar(100)				电影原名							
movie_chinese_name varchar(100)			电影中文名称
movie_show_time datetime				上映年月
movie_director_ids varchar(100)			导演ID列表,以逗号分隔
movie_screenplayer_ids varcahr(100)		编剧ID列表,以逗号分隔
movie_chief_actor_ids varchar(100)		男主角ID列表,以逗号分隔
movie_chief_actress_ids varchar(100)	女主角ID列表,以逗号分隔
movie_imdb_score int 					整数化的IMDB评分,原始IMDB评分最高分10分,带一位数,这里乘以10变为整数,最高100

director								导演表
director_id								自增id
director_name varchar(100)				导演名
director_country_id int 				导演国别ID
director_gender bool					导演性别
director_chinese_name varchar(100)		导演中文名
director_birthday datetime 				出生年月日
director_deathday datetime				逝世年月日

screenplayer							编剧表
screenplayer_id							自增id
screenplayer_country_id int 			编剧国别ID
screenplayer_gender bool				编剧性别
screenplayer_name varchar(100)			编剧名
screenplayer_chinese_name varchar(100)	编剧中文名
screenplayer_birthday datetime 			出生年月日
screenplayer_deathday datetime			逝世年月日

actor								演员表
actor_id							自增id
actor_country_id int 				演员国别ID
actor_gender bool					演员性别
actor_name varchar(100)				演员名
actor_chinese_name varchar(100)		演员中文名
actor_birthday datetime 			出生年月日
actor_deathday datetime				逝世年月日

country								国家表
country_id							自增id
country_name						国家名
country_chinese_name				中文国名

回答问题:

  • 请设计问卷系统所需要的数据库表结构。
  • 假定以上数据的model代码(提供基础CURD功能)由其他同事负责开发,写出你需要调用的接口(请写明参数和返回值)
  • 怎样保证题目不太过于偏门?简要说明思路和难点。(提示,注意IMDB评分字段)
  • 请用代码或者伪代码,在你设计的数据库基础上,实现试卷生成功能(题目全新),其中,数据model部分可只写接口(请写明参数和返回值),试卷生成部分需要将算法表述清楚。
  • 假定你的代码已经运行了一定时间,积累了一定量的题目和答案,现在要统计题目"难度",得出一个1-20之间的浮点数权值分,请说明思路。
  • 使用你自己提供的接口,或补充新接口,用代码或者伪代码实现拥有更准确评测能力的"试卷生成2.0版":依然由10道题组成,5道新题,每题10分,5道旧题,则使用刚才算出的权值分作为参数来得出难度分数,并保证这五题总分依然是50分,请简要说明思路。
  • 简要说明该系统可能的系统瓶颈,并简述优化方案。

简述浏览器通过 WSGI 请求动态资源的过程?

1.发送 http 请求动态资源给 web 服务器

2.web 服务器收到请求后通过 WSGI 调用一个属性给应用程序框架

3.应用程序框架通过引用 WSGI 调用 web 服务器的方法,设置返回的状态和头信息。

4.调用后返回,此时 web 服务器保存了刚刚设置的信息

5.应用程序框架查询数据库,生成动态页面的 body 的信息

6.把生成的 body 信息返回给 web 服务器

7.web 服务器吧数据返回给浏览器

公司线上和开发环境使用的什么系统?

你的项目基于什么平台开发的?(2020/11/29-2)

你的项目中有哪些功能模块?(2020/11/19-2)

后台开发人员有几个?怎么分的工?(2020/11/19)

保利威这个服务是部署在公网还是内网?(2020/11/19)

jwt相关

这个问题也经常被问到:

  • jwt的优缺点?
  • 为什么要用jwt?
  • jwt由哪些部分组成?各部分的作用是什么?

为什么要用Celery?(2021/4/6)

Celery的原理(2021/4/6)

你的项目中,Celery有几个worker(2021/4/3)

Celery 分布式任务队列?

Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery, 举几个实例场景中可用的例子:

  1. 你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID,你过一段时间只需要拿着这个任务id就可以拿到任务执行结果, 在任务执行ing进行时,你可以继续做其它的事情。

  2. 你想做一个定时任务,比如每天检测一下你们所有客户的资料,如果发现今天 是客户的生日,就给他发个短信祝福

Celery 在执行任务时需要通过一个消息中间件来接收和发送任务消息,以及存储任务结果, 一般使用rabbitMQ or Redis

这里你要说说你在项目中用到了celery,为啥使用?解决了那些问题?有没有配合消息队列,如果有,怎么配合的,选择的什么消息队列?

购物车用的什么数据结构?(2020/11/29)

购物车怎么实现的?如何解决的并发(2021/3/9)

购物车从点击添加到结算之间的具体实现流程(2021/4/6)

支付宝支付过程中出现异常怎么处理(2021/4/6)

数据库相关逻辑加事务,异常进行回滚。

前端怎么发送数据到后端,后端怎么给前端回数据(2021/4/6)

项目中用到的并发(2021/4/3-2)

GET和POST方法哪个更快(2021/4/3)

有一个8MB的图片,每天都有很多人访问,怎么写HTTP能减少服务器压力,如果一个星期要改一次图片,怎么写HTTP(2021/4/3)

简述cookie和session的区别(2021/3/29)

你的项目部署在了哪里?(2020/11/29)

用linux解决bug,项目出现问题在linux怎么解决的(部署)(2020/11/29)

vue的生命周期(2020/11/29)

wsgi和uwsgi(2021/3/9)

列举下你常用的http请求库,分别写个最简单的例子(2021/3/4)

posted @ 2021-05-20 16:44  芜湖〃  阅读(70)  评论(0)    收藏  举报