Ver Fonte

Add SQL statements.

scossu há 10 meses atrás
pai
commit
f31dac913b
1 ficheiros alterados com 67 adições e 0 exclusões
  1. 67 0
      scriptshifter/tables/init.sql

+ 67 - 0
scriptshifter/tables/init.sql

@@ -0,0 +1,67 @@
+/*
+ * Master language table.
+ *
+ * Overview of languages available in Scriptshifter.
+ */
+CREATE TABLE tbl_language (
+    id INTEGER PRIMARY KEY,
+    name VARCHAR UNIQUE,
+    label VARCHAR,
+    description VARCHAR NULL,
+    features TINYINT DEFAULT 0
+);
+
+/*
+ * Transliteration maps.
+ *
+ * Each row is a S2R or R2S pair associated with a language ID.
+ */
+CREATE TABLE tbl_trans_map (
+    id INTEGER PRIMARY KEY,
+    lang_id INTEGER NOT NULL,
+    dir TINYINT NOT NULL DEFAULT 0,  /* 1 = S2R; 2 = R2S */
+    src TEXT NOT NULL UNIQUE,
+    dest TEXT,
+
+    FOREIGN KEY (lang_id) REFERENCES tbl_language.id ON DELETE CASCADE
+);
+
+/*
+ * Processing hooks.
+ */
+CREATE TABLE tbl_hook (
+    id INTEGER PRIMARY KEY,
+    lang_id INTEGER NOT NULL,
+    dir TINYINT NOT NULL DEFAULT 0,  /* 1 = S2R; 2 = R2S */
+    hook TEXT NOT NULL,  /* Hook name. */
+    order INT NOT NULL,  /* Function sorting order within the hook. */
+    fn TEXT NOT NULL,   /* Function name. */
+    signature TEXT,     /* Arguments as JSON blob. */
+
+    FOREIGN KEY (lang_id) REFERENCES tbl_language.id ON DELETE CASCADE
+);
+
+/*
+ * Ignore lists for R2S.
+ */
+CREATE TABLE tbl_ignore (
+    id INTEGER PRIMARY KEY,
+    lang_id INTEGER NOT NULL,
+    rule TEXT NOT NULL,
+    features TINYINT,  /* 1 = case insensitive; 2 = regular expression. */
+
+    FOREIGN KEY (lang_id) REFERENCES tbl_language.id ON DELETE CASCADE
+);
+
+/*
+ * Normalization rules.
+ */
+CREATE TABLE tbl_norm (
+    id INTEGER PRIMARY KEY,
+    lang_id INTEGER NOT NULL,
+    src TEXT NOT NULL,
+    dest TEXT NOT NULL,
+
+    FOREIGN KEY (lang_id) REFERENCES tbl_language.id ON DELETE CASCADE
+);
+