mirror of
https://github.com/house-of-vanity/desubot.git
synced 2025-07-09 13:24:06 +00:00
Improve DB work.
This commit is contained in:
71
src/db.rs
71
src/db.rs
@ -354,6 +354,7 @@ pub(crate) async fn add_sentence(
|
|||||||
|
|
||||||
// Save stemmed words
|
// Save stemmed words
|
||||||
let words = mystem.stemming(text).await?;
|
let words = mystem.stemming(text).await?;
|
||||||
|
conn.execute("BEGIN TRANSACTION", params![]);
|
||||||
for word in words {
|
for word in words {
|
||||||
match add_word(&word).await {
|
match add_word(&word).await {
|
||||||
Ok(id) => {
|
Ok(id) => {
|
||||||
@ -366,7 +367,7 @@ pub(crate) async fn add_sentence(
|
|||||||
Err(_) => debug!("Word {} is in stop list.", &word),
|
Err(_) => debug!("Word {} is in stop list.", &word),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
conn.execute("END TRANSACTION", params![]);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -405,6 +406,10 @@ pub(crate) async fn get_top(
|
|||||||
|
|
||||||
// SCHEME
|
// SCHEME
|
||||||
static SCHEME: &str = "
|
static SCHEME: &str = "
|
||||||
|
PRAGMA foreign_keys = off;
|
||||||
|
BEGIN TRANSACTION;
|
||||||
|
|
||||||
|
-- Table: alert
|
||||||
CREATE TABLE IF NOT EXISTS alert (
|
CREATE TABLE IF NOT EXISTS alert (
|
||||||
conf_id TEXT NOT NULL,
|
conf_id TEXT NOT NULL,
|
||||||
user_id TEXT NOT NULL,
|
user_id TEXT NOT NULL,
|
||||||
@ -412,6 +417,9 @@ CREATE TABLE IF NOT EXISTS alert (
|
|||||||
time TEXT NOT NULL,
|
time TEXT NOT NULL,
|
||||||
message TEXT
|
message TEXT
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: conf
|
||||||
CREATE TABLE IF NOT EXISTS conf (
|
CREATE TABLE IF NOT EXISTS conf (
|
||||||
id NUMERIC NOT NULL
|
id NUMERIC NOT NULL
|
||||||
UNIQUE,
|
UNIQUE,
|
||||||
@ -421,17 +429,26 @@ CREATE TABLE IF NOT EXISTS conf (
|
|||||||
id
|
id
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: file
|
||||||
CREATE TABLE IF NOT EXISTS file (
|
CREATE TABLE IF NOT EXISTS file (
|
||||||
path TEXT NOT NULL,
|
path TEXT NOT NULL,
|
||||||
user_id TEXT NOT NULL,
|
user_id TEXT NOT NULL,
|
||||||
conf_id TEXT NOT NULL,
|
conf_id TEXT NOT NULL,
|
||||||
file_id STRING PRIMARY KEY
|
file_id STRING PRIMARY KEY
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: messages
|
||||||
CREATE TABLE IF NOT EXISTS messages (
|
CREATE TABLE IF NOT EXISTS messages (
|
||||||
id INTEGER NOT NULL
|
id INTEGER NOT NULL
|
||||||
PRIMARY KEY AUTOINCREMENT,
|
PRIMARY KEY AUTOINCREMENT,
|
||||||
text TEXT UNIQUE
|
text TEXT UNIQUE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: relations
|
||||||
CREATE TABLE IF NOT EXISTS relations (
|
CREATE TABLE IF NOT EXISTS relations (
|
||||||
id INTEGER NOT NULL
|
id INTEGER NOT NULL
|
||||||
PRIMARY KEY AUTOINCREMENT,
|
PRIMARY KEY AUTOINCREMENT,
|
||||||
@ -453,6 +470,9 @@ CREATE TABLE IF NOT EXISTS relations (
|
|||||||
)
|
)
|
||||||
REFERENCES conf (id)
|
REFERENCES conf (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: reset
|
||||||
CREATE TABLE IF NOT EXISTS reset (
|
CREATE TABLE IF NOT EXISTS reset (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
user_id INTEGER,
|
user_id INTEGER,
|
||||||
@ -464,9 +484,15 @@ CREATE TABLE IF NOT EXISTS reset (
|
|||||||
)
|
)
|
||||||
REFERENCES user (id)
|
REFERENCES user (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: stop_words
|
||||||
CREATE TABLE IF NOT EXISTS stop_words (
|
CREATE TABLE IF NOT EXISTS stop_words (
|
||||||
word TEXT
|
word TEXT
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: user
|
||||||
CREATE TABLE IF NOT EXISTS user (
|
CREATE TABLE IF NOT EXISTS user (
|
||||||
id INTEGER NOT NULL
|
id INTEGER NOT NULL
|
||||||
UNIQUE,
|
UNIQUE,
|
||||||
@ -479,7 +505,48 @@ CREATE TABLE IF NOT EXISTS user (
|
|||||||
)
|
)
|
||||||
ON CONFLICT REPLACE
|
ON CONFLICT REPLACE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Table: word
|
||||||
CREATE TABLE IF NOT EXISTS word (
|
CREATE TABLE IF NOT EXISTS word (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
word TEXT UNIQUE
|
word TEXT UNIQUE
|
||||||
);";
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Index: conf_ids
|
||||||
|
CREATE INDEX IF NOT EXISTS conf_ids ON conf (
|
||||||
|
id
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Index: file_ids
|
||||||
|
CREATE INDEX IF NOT EXISTS file_ids ON file (
|
||||||
|
file_id
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Index: relations_ids
|
||||||
|
CREATE INDEX IF NOT EXISTS relations_ids ON relations (
|
||||||
|
conf_id,
|
||||||
|
word_id,
|
||||||
|
user_id,
|
||||||
|
msg_id
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Index: user_ids
|
||||||
|
CREATE INDEX IF NOT EXISTS user_ids ON user (
|
||||||
|
id,
|
||||||
|
username
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- Index: word_id
|
||||||
|
CREATE INDEX IF NOT EXISTS word_id ON word (
|
||||||
|
id
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
COMMIT TRANSACTION;
|
||||||
|
PRAGMA foreign_keys = on;";
|
||||||
|
Reference in New Issue
Block a user