分类 记录 下的文章

删除数据一般分为软删除硬删除,软删除指在数据表中建立一个isDeleted字段,若删除本数据只需标记此字段而非实际删除数据,硬删除是指将数据从硬盘中实际删除。

以往我一般习惯性的采用硬删除的方式,将关联数据使用一个事务完成删除,但这样的缺点也显而易见,不具备可恢复性、如果增加新的关联数据必须一起删除,前阵子我开发的一个项目就出现了后期关联的新数据没在删除操作中加上,导致删除数据后浏览数据出错的情况。

今天看到的一篇文章中的几句话后就想通了,原文如下:

订单不是被删除的,是被“取消”的。订单取消得太晚,还会产生花费。
员工不是被删除的,是被“解雇”的(也可能是退休了)。还有相应的补偿金要处理。
职位不是被删除的,是被“填补”的(或者招聘申请被撤回)。

显然,硬删除大多数时候并不符合实际业务的客观发展,如果滥用硬删除会抹掉很多业务中的细节,破坏数据的一致性,所以我的结论是:“尽量避免硬删除,除非这条数据真的不再具有任何意义”

文章链接:https://blog.csdn.net/sinat_42483341/article/details/105723458

修改为国内的Gravatar头像源可以大幅提高头像加载速度,在 index.php 或者 config.inc.php 的顶部加入此代码即可

define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cdn.v2ex.com/gravatar/');

20220520更新:

突然发现之前的头像源部分网络无法访问了,可以更换为https://sdn.geekzu.org/avatar/

Typecho的默认主题只在PC端显示,移动设备是不显示搜索框和侧边栏的

修改方法:

打开header.php,将原文的

<div class="site-name col-mb-12 col-9">
<?php if ($this->options->logoUrl): ?>
    <a id="logo" href="<?php $this->options->siteUrl(); ?>">
        <img src="<?php $this->options->logoUrl() ?>" alt="<?php $this->options->title() ?>" />
    </a>
<?php else: ?>
    <a id="logo" href="<?php $this->options->siteUrl(); ?>"><?php $this->options->title() ?></a>
    <p class="description"><?php $this->options->description() ?></p>
<?php endif; ?>
</div>
<div class="site-search col-3 kit-hidden-tb">
    <form id="search" method="post" action="<?php $this->options->siteUrl(); ?>" role="search">
        <label for="s" class="sr-only"><?php _e('搜索关键字'); ?></label>
        <input type="text" id="s" name="s" class="text" placeholder="<?php _e('输入关键字搜索'); ?>" />
        <button type="submit" class="submit"><?php _e('搜索'); ?></button>
    </form>
</div>

修改为

<div class="site-name col-mb-12 col-tb-8 col-9">
<?php if ($this->options->logoUrl): ?>
    <a id="logo" href="<?php $this->options->siteUrl(); ?>">
        <img src="<?php $this->options->logoUrl() ?>" alt="<?php $this->options->title() ?>" />
    </a>
<?php else: ?>
    <a id="logo" href="<?php $this->options->siteUrl(); ?>"><?php $this->options->title() ?></a>
    <p class="description"><?php $this->options->description() ?></p>
<?php endif; ?>
</div>
<div class="col-mb-12 col-tb-3 col-3">
    <div class="site-search col-mb-6 col-tb-12 col-12" style="margin-left:25%;">
        <form id="search" method="post" action="<?php $this->options->siteUrl(); ?>" role="search">
            <label for="s" class="sr-only">搜索关键字</label>
            <input type="text" id="s" name="s" class="text" placeholder="输入关键字搜索"/>
            <button type="submit" class="submit">搜索</button>
        </form>
    </div>
</div>

- 阅读剩余部分 -

编辑 /usr/themes/default/sidebar.php 文件,删除第二行的 kit-hidden-tb 即可。

侧边栏没有针对手机端的优化,但如果不显示出来就要另外加个分类页,个人认为还是显示出来好些。

PHP版本:7.2
Mysql版本:5.7.31
使用PDO预处理执行insert语句插入数据,prepare执行成功,但execute返回false。

输出PDO错误结果也为空

print_r($pdo->errorCode());
print_r($pdo->errorInfo());

经排查发现主键字段未设置自增.