我想知道我是否应该在我的 MySQL 数据库中存储长 html 格式的文章,或者是否最好存储对文件的引用,并包含它。它不仅仅是段落,还有列表、表格、图像 ( <img src="">
's) 和其他包含边注等的容器。文章通常在 150 000 到 250 000 个字符之间(包括空格)。但这不包括 html 标签。
它可以很好地将其存储在数据库中。但是想知道是否有更好的方法?
本网站没有搜索选项。
添加新类别和更改现有类别时,我需要为类别设置自定义顺序。我相信代码和 sql 查询在两种情况下都是相同的。在我的webshop_categories
-table 中,我有一个so
-column(排序顺序 INT),我用它来确定应将类别输出给查看器的顺序。
这是我的类别表外观的简化示例(so = sort_order):
id | name | so
--------------------
1 | Shoes | 1
2 | Hats | 2
3 | Bags | 3
4 | Coats | 4
5 | Rings | 5
Run Code Online (Sandbox Code Playgroud)
添加新类别时,无需定义排序顺序,我只需提交一个表单,然后运行如下查询:
$so = $dbh->query('SELECT (MAX(so)+1) FROM webshop_categories WHERE so != 0')->fetchColumn();
$ins = $dbh->prepare('INSERT INTO webshop_categories (name, so)')->execute([$_POST['name'], $so]);
Run Code Online (Sandbox Code Playgroud)
(这将添加一个新类别,并将其放在最后。在这种情况下,so
将设置为 6)
这是添加新类别的非常基本的方法。工作正常。但是在大多数情况下,在处理类别时,需要将其按特定顺序进行展示。
但通常在添加新类别时,人们会希望指定该新类别相对于现有类别应放置的位置。那时更新so
-column 对我来说是一个脑筋急转弯......
我用于添加新类别的简化表格:
<form>
<input type="text" name="name">
<select name="so">
<option value="0" …
Run Code Online (Sandbox Code Playgroud)