diff --git a/database/core.mysql b/database/core.mysql new file mode 100644 index 0000000000000000000000000000000000000000..cc11f69d6b7e18c7284e913ddf67adbb2fdc59de --- /dev/null +++ b/database/core.mysql @@ -0,0 +1,170 @@ +SET FOREIGN_KEY_CHECKS=0; + + + +/* Users */ +CREATE TABLE users ( + ID SERIAL, + + Username VARCHAR(255) NOT NULL, + + Disabled SMALLINT NOT NULL DEFAULT '0', + + UNIQUE (Username) +) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin; +CREATE INDEX users_idx1 ON users (Username); + + + +/* User attributes */ +CREATE TABLE user_attributes ( + ID SERIAL, + + UserID BIGINT UNSIGNED NOT NULL, + + Name VARCHAR(255) NOT NULL, + Operator VARCHAR(4) NOT NULL, + Value VARCHAR(255), + + Disabled SMALLINT NOT NULL DEFAULT '0', + + FOREIGN KEY (UserID) REFERENCES users(ID) +) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin; + + + +/* Groups */ +CREATE TABLE groups ( + ID SERIAL, + + Name VARCHAR(255) NOT NULL, + + Priority SMALLINT NOT NULL, + + Disabled SMALLINT NOT NULL DEFAULT '0', + + Comment VARCHAR(1024) + +) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin; +CREATE INDEX groups_idx1 ON groups (Name); + + + +/* Group attributes */ +CREATE TABLE group_attributes ( + ID SERIAL, + + GroupID BIGINT UNSIGNED NOT NULL, + + Name VARCHAR(255) NOT NULL, + Operator VARCHAR(4) NOT NULL, + Value VARCHAR(255), + + Disabled SMALLINT NOT NULL DEFAULT '0', + + FOREIGN KEY (GroupID) REFERENCES groups(ID) +) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin; + + + +/* User to group mapping */ +CREATE TABLE users_to_groups ( + ID SERIAL, + + UserID BIGINT UNSIGNED NOT NULL, + GroupID BIGINT UNSIGNED NOT NULL, + + Disabled SMALLINT NOT NULL DEFAULT '0', + Comment VARCHAR(1024), + + UNIQUE (UserID,GroupID), + FOREIGN KEY (UserID) REFERENCES users(ID), + FOREIGN KEY (GroupID) REFERENCES groups(ID) +) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin; +CREATE INDEX users_to_groups_idx1 ON users_to_groups (UserID,GroupID); + + + +/* Realms */ +CREATE TABLE realms ( + ID SERIAL, + + Name VARCHAR(255) NOT NULL, + + Disabled SMALLINT NOT NULL DEFAULT '0' + +) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin; +CREATE INDEX realms_idx1 ON realms (Name); + + + +/* Realm attributes */ +CREATE TABLE realm_attributes ( + ID SERIAL, + + RealmID BIGINT UNSIGNED NOT NULL, + + Name VARCHAR(255) NOT NULL, + Operator VARCHAR(4) NOT NULL, + Value VARCHAR(255), + + Disabled SMALLINT NOT NULL DEFAULT '0', + + FOREIGN KEY (RealmID) REFERENCES realms(ID) +) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin; + + + +/* Accounting */ +CREATE TABLE accounting ( + ID SERIAL, + + Username VARCHAR(255) NOT NULL, + + ServiceType INT UNSIGNED NOT NULL, + + FramedProtocol INT UNSIGNED NOT NULL, + + NASPort VARCHAR(255) NOT NULL, + + NASPortType INT UNSIGNED NOT NULL, + + CallingStationID VARCHAR(255) NOT NULL, + + CalledStationID VARCHAR(255) NOT NULL, + + NASPortID VARCHAR(255) NOT NULL, + + AcctSessionID VARCHAR(255) NOT NULL, + + FramedIPAddress VARCHAR(16) NOT NULL, + + AcctAuthentic INT UNSIGNED NOT NULL, + + EventTimestamp DATETIME NOT NULL, + + NASIdentifier VARCHAR(255) NOT NULL, + + NASIPAddress VARCHAR(16) NOT NULL, + + AcctDelayTime INT UNSIGNED NOT NULL, + + AcctSessionTime INT UNSIGNED NOT NULL, + + AcctInputOctets INT UNSIGNED NOT NULL, + + AcctInputGigawords INT UNSIGNED NOT NULL, + + AcctInputPackets INT UNSIGNED NOT NULL, + + AcctOutputOctets INT UNSIGNED NOT NULL, + + AcctOutputGigawords INT UNSIGNED NOT NULL, + + AcctOutputPackets INT UNSIGNED NOT NULL, + + AcctStatusType INT UNSIGNED NOT NULL, + + AcctTerminateCause INT UNSIGNED NOT NULL +) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin; +CREATE INDEX accounting_idx1 ON accounting (Username); diff --git a/database/core.tsql b/database/core.tsql index f0d4610b292acaaf928848fea893ac9fe8727853..4d9608d95234156bcd6272be2b5d5f68bd448d08 100644 --- a/database/core.tsql +++ b/database/core.tsql @@ -1,5 +1,7 @@ @PRELOAD@ + + /* Users */ CREATE TABLE @PREFIX@users ( ID @SERIAL_TYPE@, @@ -13,6 +15,7 @@ CREATE TABLE @PREFIX@users ( CREATE INDEX @PREFIX@users_idx1 ON @PREFIX@users (Username); + /* User attributes */ CREATE TABLE @PREFIX@user_attributes ( ID @SERIAL_TYPE@, @@ -29,6 +32,7 @@ CREATE TABLE @PREFIX@user_attributes ( ) @CREATE_TABLE_SUFFIX@; + /* Groups */ CREATE TABLE @PREFIX@groups ( ID @SERIAL_TYPE@, @@ -45,6 +49,7 @@ CREATE TABLE @PREFIX@groups ( CREATE INDEX @PREFIX@groups_idx1 ON @PREFIX@groups (Name); + /* Group attributes */ CREATE TABLE @PREFIX@group_attributes ( ID @SERIAL_TYPE@, @@ -61,6 +66,7 @@ CREATE TABLE @PREFIX@group_attributes ( ) @CREATE_TABLE_SUFFIX@; + /* User to group mapping */ CREATE TABLE @PREFIX@users_to_groups ( ID @SERIAL_TYPE@, @@ -78,6 +84,37 @@ CREATE TABLE @PREFIX@users_to_groups ( CREATE INDEX @PREFIX@users_to_groups_idx1 ON @PREFIX@users_to_groups (UserID,GroupID); + +/* Realms */ +CREATE TABLE @PREFIX@realms ( + ID @SERIAL_TYPE@, + + Name VARCHAR(255) NOT NULL, + + Disabled SMALLINT NOT NULL DEFAULT '0', + +) @CREATE_TABLE_SUFFIX@; +CREATE INDEX @PREFIX@realms_idx1 ON @PREFIX@realms (Name); + + + +/* Realm attributes */ +CREATE TABLE @PREFIX@realm_attributes ( + ID @SERIAL_TYPE@, + + RealmID @SERIAL_REF_TYPE@ NOT NULL, + + Name VARCHAR(255) NOT NULL, + Operator VARCHAR(4) NOT NULL, + Value VARCHAR(255), + + Disabled SMALLINT NOT NULL DEFAULT '0', + + FOREIGN KEY (RealmID) REFERENCES @PREFIX@realms(ID) +) @CREATE_TABLE_SUFFIX@; + + + /* Accounting */ CREATE TABLE @PREFIX@accounting ( ID @SERIAL_TYPE@, @@ -131,5 +168,3 @@ CREATE TABLE @PREFIX@accounting ( AcctTerminateCause INT UNSIGNED NOT NULL ) @CREATE_TABLE_SUFFIX@; CREATE INDEX @PREFIX@accounting_idx1 ON @PREFIX@accounting (Username); - -/* FIXME: indexes */ diff --git a/database/wisp.mysql b/database/wisp.mysql new file mode 100644 index 0000000000000000000000000000000000000000..1429b91132d63d2c247f5c51c999f3e5a46efe41 --- /dev/null +++ b/database/wisp.mysql @@ -0,0 +1,19 @@ +SET FOREIGN_KEY_CHECKS=0; + +/* User Data */ +CREATE TABLE userdata ( + ID SERIAL, + + UserID BIGINT UNSIGNED NOT NULL, + + FirstName VARCHAR(255) NOT NULL, + LastName VARCHAR(255) NOT NULL, + + Email VARCHAR(255) NOT NULL, + Phone VARCHAR(20) NOT NULL, + Location VARCHAR(255) NOT NULL, + + UNIQUE (UserID), + FOREIGN KEY (UserID) REFERENCES users(ID) +) TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin; +CREATE INDEX userdata_idx1 ON userdata (UserID); diff --git a/database/wisp.tsql b/database/wisp.tsql new file mode 100644 index 0000000000000000000000000000000000000000..44493d7552f6f584c9a8256c0580bb37c7b33d6f --- /dev/null +++ b/database/wisp.tsql @@ -0,0 +1,19 @@ +@PRELOAD@ + +/* User Data */ +CREATE TABLE @PREFIX@userdata ( + ID @SERIAL_TYPE@, + + UserID @SERIAL_REF_TYPE@ NOT NULL, + + FirstName VARCHAR(255) NOT NULL, + LastName VARCHAR(255) NOT NULL, + + Email VARCHAR(255) NOT NULL, + Phone VARCHAR(20) NOT NULL, + Location VARCHAR(255) NOT NULL, + + UNIQUE (UserID), + FOREIGN KEY (UserID) REFERENCES @PREFIX@users(ID) +) @CREATE_TABLE_SUFFIX@; +CREATE INDEX @PREFIX@userdata_idx1 ON @PREFIX@userdata (UserID);