<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[success] > **推薦使用 sqlyog 或者 Navicat 管理 mysql** > **強烈不建議使用 phpMyAdmin, 速度太慢,修改十分麻煩,筆者使用的 sqlyog** ***** >[danger] > **簡單的說就是每個需要寫 CURD 操作的表都必須有以下幾個字段** > **否則會導致回收站功能不能使用** > **甚至基礎功能出現bug** > **關系映射表不需要加,比如 ithinkphp_role_privilege , ithinkphp_user_role , ithinkphp_config_group 這樣的表** ``` CREATE TABLE `table_name` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `remark` text NOT NULL COMMENT '備注', `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:禁用, 1:正常, 2:已刪除', `time` int(11) NOT NULL DEFAULT '0' COMMENT '添加時間', `del_time` int(11) NOT NULL DEFAULT '0' COMMENT '刪除時間', PRIMARY KEY (`id`) ) ENGINE=InnoDB COMMENT='表注釋' ``` **表設計規范** * 所有的表必須要加前綴,統一使用 `ithink_ `,不能修改 * 自己開發的應用,表名加上自己應用前綴,如 `ithink_blog_ ` * 所有表和字段必須添加注釋 * 所有的表名和字段名小寫,多關鍵字使用下劃線分割(關鍵字盡量全稱,不用顧慮表名太長) * 數據類型盡量用數字類型,數字類型的比字符類型的要快 * 所有枚舉數據都使用整形保存,通常使用tinyint,根據情況選擇更長的類型,如性別,0-保密,1-男,2-女 * 若非邏輯需求則整形字段都使用無符號整形 * 必須使用InnoDB存儲引擎,所有表的CURD操作都已經封裝在了事務里,myisam將無法工作 * 布爾類型的字段名的值均以 is_、has_、exist_ 或者 can_開頭,如is_new * 必須使用UTF8mb4字符集 * 必須使用UTF8mb4_general_ci校對 * 所有時間都統一保存時間戳,類型使用int型 **字段約定** * 所有表主鍵自增列都使用id作為字段名稱 * 必須把字段定義為NOT NULL(非空)并且提供默認值,text類型不需要有默認值 * 所有表用`user_id`代表用戶id字段 * 涉及無限極分類的表父級id字段名統一為 `pid ` * 表中的`status`字段為數據狀態,不要與業務邏輯混合,如支付狀態可新增 `pay_status` 字段記錄 * 所有實體表統一加`status(tinyint)`字段,0-回收站,1-正常狀態,2-禁用狀態 * 所有實體表統一加`time(int)`字段,表示添加記錄的時間 * 所有實體表統一加`del_time(int)`字段,表示軟刪除記錄的時間 * 所有實體表統一加`remark(text)`字段,表示備注,入表都用`stripslashes`,`htmlentities`,`htmlspecialchars` 三個函數處理過,取出時都反向處理過(已經集成在系統,開發者無需處理) **其他規范** * 單索引字段數不允許超過5個 * 禁止在更新十分頻繁、區分度不高的屬性上建立索引 如性別,一共就0-保密,1-男,2-女,三種可能,無論怎么查,查出來的結果都沒有太高的區分度 * 建立組合索引,必須把區分度高的字段放在前面 ***** **建表參考** ![](https://box.kancloud.cn/eceb1d7b3b4d8d9ed2c0d448076e43f1_1236x698.png) ***** ![](https://box.kancloud.cn/82361c436eb3c15c05bfd64fbd120a48_970x875.png) ``` CREATE TABLE `ithink_user` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用戶名', `password` char(32) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '登錄密碼', `salt` char(6) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '鹽', `gender` tinyint(2) NOT NULL DEFAULT '0' COMMENT '性別;0:保密,1:男,2:女', `phone` char(11) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '用戶手機號', `email` varchar(255) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '登錄郵箱', `birthday` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '生日', `nickname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用戶昵稱', `score` int(11) NOT NULL DEFAULT '0' COMMENT '用戶積分', `reg_ip` char(16) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '注冊ip', `last_login_ip` char(16) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '最后登錄ip', `last_online_time` int(11) NOT NULL DEFAULT '0' COMMENT '最后在線時間', `last_login_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后登陸時間', `user_url` varchar(255) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '用戶個人網址', `user_type` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '用戶類型;1:后臺, 2:前臺用戶', `profile_pic` varchar(255) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '用戶頭像路徑', `signature` varchar(255) CHARACTER SET utf8mb4 NOT NULL DEFAULT '' COMMENT '個性簽名', `login_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '登陸次數', `status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '0:禁用, 1:正常, 2:已刪除', `del_time` int(11) NOT NULL DEFAULT '0' COMMENT '刪除時間', `time` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `user_login_key` (`user`), KEY `user_nicename` (`nickname`) ) ENGINE=InnoDB COMMENT='用戶表' ``` ``` CREATE TABLE `ithink_config` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT '' COMMENT '配置名字', `key` varchar(255) NOT NULL DEFAULT '' COMMENT '配置鍵,config函數用的鍵', `value` text NOT NULL COMMENT '對應值', `type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1:array 2:textarea 3:switch', `group_id` tinyint(4) NOT NULL DEFAULT '1' COMMENT '所屬分組', `is_const` tinyint(4) NOT NULL COMMENT '是否常量 0不是,1是', `remark` text NOT NULL COMMENT '備注', `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:禁用, 1:正常, 2:已刪除', `time` int(11) NOT NULL DEFAULT '0' COMMENT '添加時間', `del_time` int(11) NOT NULL DEFAULT '0' COMMENT '刪除時間', PRIMARY KEY (`id`) ) ENGINE=InnoDB COMMENT='配置表' ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看