最近和家里人去云南旅游的一段时间,记录一下遇到的坑和好玩的

丽江

丽江主要是古城和玉龙雪山,其中丽江古城感觉有点过于商业化了,束河古镇和白沙古镇相对来说更接地气一点。丽江的海拔还是比较高的,有些人可能会有轻微高反,如果准备去玉龙雪山的可以考虑在白沙古镇附件中转也算是适应一下。在丽江三个古镇之间有公交公司的车(5快)和旅游公司的车(9.9)。不过公交公司的车比较少,旺季可以选择旅游公司的车,不是太坑。这边的腊排骨火锅比较便宜

昆明

昆明市区内其实没啥景点,老街还有夜市已经比较商业化了。斗南花市的花确实比较便宜,但是旅游往回带的话说实话并不是很方便。不过老街那边可以买点鲜花饼之类的。翠湖里面有个茶馆搞得盆景挺不错的,可以去看看。盆景不出售,只是展示。另外云南的破酥包也算比较有特色,可以尝试一下

西双版纳

西双版纳的旅游已经进化成一种流水线形式的了甚至公交公司的旅游专线上都是旅游公司的人。个人比较喜欢野象谷和中科植物园。来旅游一般住在星光夜市附件,这边民宿老板基本都是东北人,夜市也有不少东北特色,价格相对比较贵,老城区应该是在河对岸那边,但是去各个景点可能不太方便。总体来说不是很推荐去西双版纳

问题

字段别名

同一个含义的属性在不同地方出现的时候名称可能有细微变化,如果将其视为不同字段在需要修改的时候可能需要修改多处,一定程度上违背的数据初始化的初衷

命名规范

  1. 对相似的中午应该有相似的英文
  2. 类似id和no,seqNo和serialNo之间的选择

缩写规范

  1. cust和cus

结构体规范化

例如公共的审计,逻辑删除,拉链字段可以作为一个整体进行规范

应用标准

  1. dto代码扫描
  2. 开发工具自定义字典生成
  3. 数据库ddl扫描

解决思路

对公共字段设置抽象参考

标准字段可以直接设置长度名称等属性也可以从一个抽象定义中继承长度,码值等属性
在使用的时候不能使用抽象定义,配合代码生成工具们可以对码值生成枚举

设置词典和词根

使用词典来规范专有名词的使用

定期扫描

数据标准化极大概率是一个持续进行的工作,所以事后补偿机制是很有必要的

# 更新软件源并安装基础工具
apt update && apt upgrade
apt install wget curl lsb-release unzip 

# 导入微软仓库密钥
wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

# 更新软件源并安装编译需要的软件
sudo apt update
sudo apt install -y powershell nodejs npm git php-cli php-zip php-curl unzip

# 使用npm安装yarn
npm install -g yarn

# 下载并安装Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"

按照手动构建的方法构建

深分页

深分页也就是在分页的场景下查询靠近末尾的页,因为数据库原理的问题,以每页10条数据为例查询第n页的数据是总是需要先查询10n条数据然后丢弃10(n-1)条数据,所以查询越靠后花费的时间越长.当表字段很多的时候可以使用延迟join来优化性能

select * from table all inner join(
 select id from table limit x,y
)id on all.id=id.id

延迟join的核心思想是在分页查询中只查询主键(或者唯一索引)减少结果集的大小,然后在外层通过inner join主键查询,查询少量数据,但是这种优化方式对小表可以产生负优化