Skip to content

Commit

Permalink
fix(moneymanagerex#23): foreign key constraints added to db schema
Browse files Browse the repository at this point in the history
  • Loading branch information
slodki committed Dec 1, 2018
1 parent ffdfc41 commit 56afa62
Showing 1 changed file with 35 additions and 33 deletions.
68 changes: 35 additions & 33 deletions tables.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
pragma foreign_keys=ON;

-- Describe ACCOUNTLIST
CREATE TABLE ACCOUNTLIST(
ACCOUNTID integer primary key
Expand All @@ -12,7 +14,7 @@ ACCOUNTID integer primary key
, ACCESSINFO TEXT
, INITIALBAL numeric
, FAVORITEACCT TEXT NOT NULL
, CURRENCYID integer NOT NULL
, CURRENCYID integer NOT NULL REFERENCES CURRENCYFORMATS
, STATEMENTLOCKED integer
, STATEMENTDATE TEXT
, MINIMUMBALANCE numeric
Expand All @@ -39,16 +41,16 @@ CREATE INDEX IDX_ASSETS_ASSETTYPE ON ASSETS(ASSETTYPE);
-- Describe BILLSDEPOSITS
CREATE TABLE BILLSDEPOSITS(
BDID integer primary key
, ACCOUNTID integer NOT NULL
, TOACCOUNTID integer
, PAYEEID integer NOT NULL
, ACCOUNTID integer NOT NULL REFERENCES ACCOUNTLIST
, TOACCOUNTID integer REFERENCES ACCOUNTLIST
, PAYEEID integer NOT NULL REFERENCES PAYEE
, TRANSCODE TEXT NOT NULL /* Withdrawal, Deposit, Transfer */
, TRANSAMOUNT numeric NOT NULL
, STATUS TEXT /* None, Reconciled, Void, Follow up, Duplicate */
, TRANSACTIONNUMBER TEXT
, NOTES TEXT
, CATEGID integer
, SUBCATEGID integer
, CATEGID integer REFERENCES CATEGORY
, SUBCATEGID integer REFERENCES SUBCATEGORY
, TRANSDATE TEXT
, FOLLOWUPID integer
, TOTRANSAMOUNT numeric
Expand All @@ -61,19 +63,19 @@ CREATE INDEX IDX_BILLSDEPOSITS_ACCOUNT ON BILLSDEPOSITS (ACCOUNTID, TOACCOUNTID)
-- Describe BUDGETSPLITTRANSACTIONS
CREATE TABLE BUDGETSPLITTRANSACTIONS(
SPLITTRANSID integer primary key
, TRANSID integer NOT NULL
, CATEGID integer
, SUBCATEGID integer
, TRANSID integer NOT NULL REFERENCES BILLSDEPOSITS
, CATEGID integer REFERENCES CATEGORY
, SUBCATEGID integer REFERENCES SUBCATEGORY
, SPLITTRANSAMOUNT numeric
);
CREATE INDEX IDX_BUDGETSPLITTRANSACTIONS_TRANSID ON BUDGETSPLITTRANSACTIONS(TRANSID);

-- Describe BUDGETTABLE
CREATE TABLE BUDGETTABLE(
BUDGETENTRYID integer primary key
, BUDGETYEARID integer
, CATEGID integer
, SUBCATEGID integer
, BUDGETYEARID integer REFERENCES BUDGETYEAR
, CATEGID integer REFERENCES CATEGORY
, SUBCATEGID integer REFERENCES SUBCATEGORY
, PERIOD TEXT NOT NULL /* None, Weekly, Bi-Weekly, Monthly, Monthly, Bi-Monthly, Quarterly, Half-Yearly, Yearly, Daily*/
, AMOUNT numeric NOT NULL
);
Expand Down Expand Up @@ -116,16 +118,16 @@ INSERT INTO CATEGORY VALUES(16,'_tr_Transfer');
-- Describe CHECKINGACCOUNT
CREATE TABLE CHECKINGACCOUNT(
TRANSID integer primary key
, ACCOUNTID integer NOT NULL
, TOACCOUNTID integer
, PAYEEID integer NOT NULL
, ACCOUNTID integer NOT NULL REFERENCES ACCOUNTLIST
, TOACCOUNTID integer REFERENCES ACCOUNTLIST
, PAYEEID integer NOT NULL REFERENCES PAYEE
, TRANSCODE TEXT NOT NULL /* Withdrawal, Deposit, Transfer */
, TRANSAMOUNT numeric NOT NULL
, STATUS TEXT /* None, Reconciled, Void, Follow up, Duplicate */
, TRANSACTIONNUMBER TEXT
, NOTES TEXT
, CATEGID integer
, SUBCATEGID integer
, CATEGID integer REFERENCES CATEGORY
, SUBCATEGID integer REFERENCES SUBCATEGORY
, TRANSDATE TEXT
, FOLLOWUPID integer
, TOTRANSAMOUNT numeric
Expand All @@ -136,7 +138,7 @@ CREATE INDEX IDX_CHECKINGACCOUNT_TRANSDATE ON CHECKINGACCOUNT (TRANSDATE);
-- Describe CURRENCYHISTORY
CREATE TABLE CURRENCYHISTORY(
CURRHISTID INTEGER PRIMARY KEY
, CURRENCYID INTEGER NOT NULL
, CURRENCYID INTEGER NOT NULL REFERENCES CURRENCYFORMATS
, CURRDATE TEXT NOT NULL
, CURRVALUE NUMERIC NOT NULL
, CURRUPDTYPE INTEGER
Expand Down Expand Up @@ -455,25 +457,25 @@ CREATE INDEX IDX_INFOTABLE_INFONAME ON INFOTABLE(INFONAME);
CREATE TABLE PAYEE(
PAYEEID integer primary key
, PAYEENAME TEXT COLLATE NOCASE NOT NULL UNIQUE
, CATEGID integer
, SUBCATEGID integer
, CATEGID integer REFERENCES CATEGORY
, SUBCATEGID integer REFERENCES SUBCATEGORY
);
CREATE INDEX IDX_PAYEE_INFONAME ON PAYEE(PAYEENAME);

-- Describe SPLITTRANSACTIONS
CREATE TABLE SPLITTRANSACTIONS(
SPLITTRANSID integer primary key
, TRANSID integer NOT NULL
, CATEGID integer
, SUBCATEGID integer
, TRANSID integer NOT NULL REFERENCES CHECKINGACCOUNT
, CATEGID integer REFERENCES CATEGORY
, SUBCATEGID integer REFERENCES SUBCATEGORY
, SPLITTRANSAMOUNT numeric
);
CREATE INDEX IDX_SPLITTRANSACTIONS_TRANSID ON SPLITTRANSACTIONS(TRANSID);

-- Describe STOCK
CREATE TABLE STOCK(
STOCKID integer primary key
, HELDAT integer
, HELDAT integer REFERENCES ACCOUNTLIST
, PURCHASEDATE TEXT NOT NULL
, STOCKNAME TEXT COLLATE NOCASE NOT NULL
, SYMBOL TEXT
Expand All @@ -489,7 +491,7 @@ CREATE INDEX IDX_STOCK_HELDAT ON STOCK(HELDAT);
-- Describe STOCKHISTORY
CREATE TABLE STOCKHISTORY(
HISTID integer primary key
, SYMBOL TEXT NOT NULL
, SYMBOL TEXT NOT NULL REFERENCES STOCK(SYMBOL)
, DATE TEXT NOT NULL
, VALUE numeric NOT NULL
, UPDTYPE integer
Expand All @@ -501,7 +503,7 @@ CREATE INDEX IDX_STOCKHISTORY_SYMBOL ON STOCKHISTORY(SYMBOL);
CREATE TABLE SUBCATEGORY(
SUBCATEGID integer primary key
, SUBCATEGNAME TEXT COLLATE NOCASE NOT NULL
, CATEGID integer NOT NULL
, CATEGID integer NOT NULL REFERENCES CATEGORY
, UNIQUE(CATEGID, SUBCATEGNAME)
);
CREATE INDEX IDX_SUBCATEGORY_CATEGID ON SUBCATEGORY(CATEGID);
Expand Down Expand Up @@ -592,7 +594,7 @@ CREATE INDEX IDX_USAGE_DATE ON USAGE_V1 (USAGEDATE);
-- Asset Classes
CREATE TABLE ASSETCLASS (
ID INTEGER primary key
, PARENTID INTEGER
, PARENTID INTEGER REFERENCES ASSETCLASS
, NAME TEXT COLLATE NOCASE NOT NULL
, ALLOCATION REAL
, SORTORDER INTEGER
Expand All @@ -601,8 +603,8 @@ ID INTEGER primary key
-- Asset Class / Stock link table
CREATE TABLE ASSETCLASS_STOCK (
ID INTEGER primary key
, ASSETCLASSID INTEGER NOT NULL
, STOCKSYMBOL TEXT UNIQUE
, ASSETCLASSID INTEGER NOT NULL REFERENCES ASSETCLASS
, STOCKSYMBOL TEXT UNIQUE REFERENCES STOCK(SYMBOL)
);

-- Describe CUSTOMFIELD
Expand All @@ -618,7 +620,7 @@ CREATE INDEX IDX_CUSTOMFIELD_REF ON CUSTOMFIELD (REFTYPE);
-- Describe CUSTOMFIELDDATA
CREATE TABLE CUSTOMFIELDDATA (
FIELDATADID INTEGER NOT NULL PRIMARY KEY
, FIELDID INTEGER NOT NULL
, FIELDID INTEGER NOT NULL REFERENCES CUSTOMFIELD
, REFID INTEGER NOT NULL
, CONTENT TEXT
, UNIQUE(FIELDID, REFID)
Expand All @@ -627,8 +629,8 @@ CREATE INDEX IDX_CUSTOMFIELDDATA_REF ON CUSTOMFIELDDATA (FIELDID, REFID);

-- describe TRANSACTIONLINK
CREATE TABLE TRANSLINK (
TRANSLINKID integer NOT NULL primary key
, CHECKINGACCOUNTID integer NOT NULL
TRANSLINKID integer NOT NULL primary key
, CHECKINGACCOUNTID integer NOT NULL REFERENCES CHECKINGACCOUNT
, LINKTYPE TEXT NOT NULL /* Asset, Stock */
, LINKRECORDID integer NOT NULL
);
Expand All @@ -638,7 +640,7 @@ CREATE INDEX IDX_CHECKINGACCOUNT ON TRANSLINK (CHECKINGACCOUNTID);
-- describe SHAREINFO
CREATE TABLE SHAREINFO (
SHAREINFOID integer NOT NULL primary key
, CHECKINGACCOUNTID integer NOT NULL
, CHECKINGACCOUNTID integer NOT NULL REFERENCES CHECKINGACCOUNT
, SHARENUMBER numeric
, SHAREPRICE numeric
, SHARECOMMISSION numeric
Expand Down

0 comments on commit 56afa62

Please sign in to comment.