鍍金池/ 問答/ 數(shù)據(jù)庫問答
礙你眼 回答

users // 用戶表
plugins // 插件
user_plugin_relationships //用戶插件關系表

你這個直接就起名a1_cat_relationships 然后在主鍵里把表是干什么用的寫到備注里
數(shù)據(jù)庫還是給開發(fā)人員看的,內部統(tǒng)一一套規(guī)矩就OK了

下墜 回答

層級節(jié)點,做code,看一下我天朝的行政區(qū)劃代碼,

第一層 第二層 第三層
100 100100 100100100
200 200100 200100100
300 300100 300100100

查詢某個節(jié)點的子集(子子集等),like '100%';

idpid保留,兩種模式。

巫婆 回答

我用具體的代碼來解釋下吧
接口A,有方法X

public interface A {
    public void methodX() throws IOException;
}

在用戶模塊有這樣一段調用

public class ModuleUser{
    public void methodY(A a) throws IOException
    {
        a.methodX();
    }
}

現(xiàn)在要對方法X增加一個異常,變?yōu)椋?/p>

public interface A {
    public void methodX() throws IOException,DataFormatException;
}

這樣用戶模塊ModuleUser的方法Y就要修改,不修改,編譯就不會通過。

怎么樣解決呢?
方法1,新方法調用舊方法。(接口中不能新方調用舊方法,所以我改為抽象類)

public abstract class A {
    public void methodX() throws IOException
    {
        try {
            methodNewX();
        } catch (DataFormatException e) {
            throw new RuntimeException(e);
        }
    }
    
    public abstract void methodNewX() throws IOException ,DataFormatException;
}

方法2: 以拋出一個unchecked異常,unchecked就是編譯器不檢查的運行時異常。
如下

public interface A {
    public void methodX() throws IOException,RuntimeException;
}

這樣用戶代碼也不用改。

但這兩個方法都不好。

作者喜歡的做法是這樣的(也是推薦的方式)。
在包中定義自己的異常

public class MyException extends Exception {

}

接口一開始就寫成

public interface A {
    public void methodX() throws MyException;
}

用戶模塊就會是這樣的:

public class ModuleUser{
    public void methodY(A a) throws MyException
    {
        a.methodX();
    }
}

如果再遇到上面要加異常信息的情況
就為MyException創(chuàng)建一個子類,加接口A上,這樣用戶代碼就不用改,也能適配。

上面一段話大概就是想表達這個觀點。
因為這本書是國外人寫的,翻譯成中文,所以讀起來有點別扭。
英文原文是這樣的

There is one particular area with problems in changing interfaces in Java: adding an exception to the throws clause.

讀這本書,覺得不好理解的,就可試著看看英文原文。

嫑吢丕 回答

為啥用數(shù)據(jù)庫實現(xiàn),用全文搜索啊,一般都有權重功能的...

薔薇花 回答

如果是輕量級服務器的話,應該只需要在防火墻 放行 3306端口 即可,但你的服務器必須安裝mysql了。
注意,一般默認的是沒有安裝mysql的。

巴扎嘿 回答

ctrl+f 搜索mysql替換為mysqli

吢涼 回答
匹配user開頭
RewriteRule ^/user/(.+)$ /user/$1.php [PT,QSA,L]
eg:/user/index    ->    /user/index.php

匹配任意
RewriteRule ^/(.+)/(.+)$ /$1/$2.php [PT,QSA,L]
eg:/admin/ttt    ->    /admin/ttt.php

添加#就變?yōu)殄^點了,不建議這樣做

舊言 回答
SELECT id, CONCAT(
    CASE WHEN A=1 THEN 'A ' ELSE '' END,
    CASE WHEN B=1 THEN 'B ' ELSE '' END,
    CASE WHEN C=1 THEN 'C ' ELSE '' END,
    CASE WHEN D=1 THEN 'D ' ELSE '' END,
    CASE WHEN E=1 THEN 'E ' ELSE '' END)
FROM test2

絯孑氣 回答

1.update語句有種配置方式(useAffectedRows=true)可以返回影響的記錄數(shù)
2.如果步驟1不好用,能不能以再次查詢的方式進行驗證

沒用過nodejs,不太確定你具體的使用方式

久舊酒 回答

executeBatch()
executeBath()
?

不能再捕獲異常的位置,把執(zhí)行sql全部都打印出來,然后,去數(shù)據(jù)庫客戶端,手動嘗試一次嗎?

風清揚 回答

謝邀,mysql的主從數(shù)據(jù)庫是在mysql層上做的。Django沒有實現(xiàn)數(shù)據(jù)庫主從配置。http://blog.csdn.net/pasic/ar...

你說的那個db路由,是多數(shù)據(jù)庫及分庫的情況。當然你也可以把主從數(shù)據(jù)庫寫入:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'HOST': 'ip',                 #主服務器ip
    'PORT': 3306,
    'USER': 'root',
    'PASSWORD': 'mysql',
    'NAME': 'dailyfresh_14'
    },
'slave': {
    'ENGINE': 'django.db.backends.mysql',
    'HOST': 'ip',                 #從服務器ip
    'PORT': 3306,
    'USER': 'root',
    'PASSWORD': 'mysql',
    'NAME': 'dailyfresh_14'
    }
}
墨染殤 回答

執(zhí)行insert(user)成功后 user.getId()就可以得到生成的id

吃藕丑 回答

不需要寫,這是sequelize自帶的,這樣做是為了以便于你查詢的時候可以把關聯(lián)的內容順帶查出來.

//查詢用戶記錄時候通過uid順便把用戶信息通過YepUserRef帶出來.
//sequelize通過你建立的連接調用get方法查出關聯(lián)信息

db.YepUserRecordRef.belongsTo(db.YepUserRef, {foreignKey: "yuid"});

YepUserRecordRef.findAll({
        where: {
            yuid: yuid
        },
        include: [YepUserRef]
    }).then(function (result) {
        callback(result)
    }).catch(function (err) {
        callback(err)
    });

以上都是我自己的理解,如有錯誤請指正.看見樓主再用sequelize,當初也用他寫過一些項目,如果有疑問可以隨時問我!(手動滑稽);
分享一下我當初學比較好的文檔 https://itbilu.com/nodejs/npm...

空痕 回答
a.findOne({'_id':ID}).populate('liked').then(like=>{
    console.log(like)
}),

此處的查詢條件是否被你限制了而導致查找不到符合的數(shù)據(jù)

黑與白 回答

不建議直接使用sql處理,可以先從數(shù)據(jù)庫查出來,然后在應用程序中使用正則表達式搜索處理。

淚染裳 回答

你這樣關聯(lián)字段來判斷是否已讀消息不科學啊,后期數(shù)據(jù)量大起來的話很難受的

一般都是消息表有個狀態(tài)字段來區(qū)分它們,比如:

—————————————————————————————————————————
| Id | 編號 |
—————————————————————————————————————————
| State | 消息狀態(tài):1 未讀 2 已讀 |
—————————————————————————————————————————

關聯(lián)還是 messageId 與 消息表 Id 關聯(lián)

但查詢未讀消息的話就這樣

SELECT * FROM [message] WHERE State=1

豈不美哉?。?!

負我心 回答

建議更換開發(fā)語言

風清揚 回答

其實把 sep 賦值移出到循環(huán)外也可以:

func main() {
    var s, sep string
    sep = " " 
    for i := 1; i < len(os.Args); i++ {
        s += sep + os.Args[i]
    }
    fmt.Println(s)
}

如果是樓上說的防止字符串之前出現(xiàn)空格,那么可以使用 strings.Join:

package main

import (
    "fmt"
    "os"
    "strings"
)

func main() {
    var sep = " "
    var s = strings.Join(os.Args[1:], sep)
    fmt.Println(s)
}

代碼會更清晰.參考 func Join

膽怯 回答

在MySQL并發(fā)大的情況下 冷熱數(shù)據(jù)分離是一種優(yōu)化手段