当前位置: 首页 > news >正文

常德网站定制如何架设一个网站

常德网站定制,如何架设一个网站,东莞市非凡网站建设,wordpress 文章显示全文场景 你作为一个服务端工程师,假设产品要求设计这么一个页面,页面上包含很多模块,每个模块都可以单独进行变更,有些模块是富文本。 实现方式有很多,我们来聊比较常用的两种,看看mysql的表如何设计。 第一…

场景

你作为一个服务端工程师,假设产品要求设计这么一个页面,页面上包含很多模块,每个模块都可以单独进行变更,有些模块是富文本。

在这里插入图片描述

实现方式有很多,我们来聊比较常用的两种,看看mysql的表如何设计。

第一种使用key-val的方案,这就需要两张表。

CREATE TABLE `playground` (`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`name` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '名称',`operator_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '操作人id',`status` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '状态,1使用 2删除',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`),KEY `idx_operator_id` (`operator_id`),KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB COLLATE=utf8mb4_general_ci COMMENT='playground项目信息'CREATE TABLE `current_info` (`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`playground_id` bigint unsigned NOT NULL COMMENT 'playground_id',`item_type` int NOT NULL DEFAULT '0' COMMENT '每个模块的id',`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '模块内容',`operator_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '操作人id',`status` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '状态,1使用 2删除',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`),KEY `idx_playground_id` (`playground_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='当前信息'

第二种方式则是放在一张表记录

CREATE TABLE `current_info` (`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '名称',`description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '描述',`status` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '状态,0无效,1有效',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',`creator_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建者ID',`a` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'a模块内容',`b` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'b模块内容',PRIMARY KEY (`id`),KEY `idx_creator_id` (`creator_id`),KEY `idx_create_time` (`create_time`),KEY `idx_update_time` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='内容表'

对于这两种方案,你会如何选择?

对比

我个人建议选择正常存储的方案,因为适应面更加广泛

Key-val正常存储
优点增加新模块,服务端无需感知,前端自行增加即可实现复杂度低很多
缺点1. 即使是普通的列表,实现起来也比较复杂,必须有一张主表 2.列表排序、筛选不好实现,如按照修改时间排序、根据名称筛选等 3.数量多,页面数据会有多条 4.字段浪费严重,每个字段必须一样,大部分情况是是text每次有新增模块,服务端需要一起修改。但这个比较正常,大部分时候新增的功能,服务端总是需要做一些改动的

总结

对于技术方案的选择,十分重要,尤其是作为第一版的设计者。怎么知道哪个方案更加合适呢?我的想法是找到当前的各个场景和预判将来的各个场景,思考一下如果用某套方案实现这些场景,成本如何。

http://www.yayakq.cn/news/87976/

相关文章:

  • 做关于车的网站青岛产品设计公司
  • 苏州园区手机网站制作秦皇岛网站制作代理商
  • 丹阳网站制作华茂达建设集团网站
  • 网站关键词怎么做网上电商教程
  • 重庆永川网站建设报价如何快速建立网站
  • 做网站作品是静态郑州响应式网站建设
  • 网络营销站点推广的方法开发公司设计管理部绩效考核
  • 联系导师邮件模板清智优化北京
  • 做化工的在哪个网站做平台好做网站的组要具备哪些素质
  • 一份电子商务网站建设规划书百度竞价排名模式
  • 公司网站地址学习做ppt 的网站
  • 用虚拟主机好还是阿里云wordpress网站怎么自己做优化
  • 抚州市做棋牌网站ui设计主要用的软件
  • 城乡建设部网站自助商品房客户关系管理名词解释
  • 交互式网站开发技术包括网站建设的文本事例
  • 西直门网站建设京东网站设计代码
  • 湘潭什么网站做c1题目预付网站建设服务费如何入账
  • 移动互联和网站开发哪个好工作总结教师
  • 东莞企业网站推广产品招商网
  • 接做网站私活网站主体负责人邮箱
  • 网站做系统叫什么天津建设工程信息网网
  • 双井网站建设群晖 wordpress配置
  • 网站支付宝网上支付功能怎么做怎么用网站卖自己做
  • 东莞网站建设优化方案住房城乡建设部服务平台
  • 做透明头像的网站做网站建设需要什么工具
  • 盐城做网站哪家好高质量的丹阳网站建设
  • 网站开发和微信开发需要什么人中国商铺网
  • 怎样注册网站免费注册宝塔ssl文件位置wordpress
  • 福州商城网站开发公司洛阳市建设工程造价信息网
  • 企业网站多少钱一个可以做视频的网站