Newer
Older
/* Users */
CREATE TABLE @PREFIX@users (
ID @SERIAL_TYPE@,
Username VARCHAR(255) NOT NULL,
UNIQUE (Username)
) @CREATE_TABLE_SUFFIX@;
CREATE INDEX @PREFIX@users_idx1 ON @PREFIX@users (Username);
/* User attributes */
CREATE TABLE @PREFIX@user_attributes (
UserID @SERIAL_REF_TYPE@ NOT NULL,
Operator VARCHAR(4) NOT NULL,
FOREIGN KEY (UserID) REFERENCES @PREFIX@users(ID)
/* Groups */
CREATE TABLE @PREFIX@groups (
ID @SERIAL_TYPE@,
Name VARCHAR(255) NOT NULL,
Priority SMALLINT NOT NULL,
Disabled SMALLINT NOT NULL DEFAULT '0',
CREATE INDEX @PREFIX@groups_idx1 ON @PREFIX@groups (Name);
CREATE TABLE @PREFIX@group_attributes (
GroupID @SERIAL_REF_TYPE@ NOT NULL,
Operator VARCHAR(4) NOT NULL,
FOREIGN KEY (GroupID) REFERENCES @PREFIX@groups(ID)
) @CREATE_TABLE_SUFFIX@;
/* User to group mapping */
CREATE TABLE @PREFIX@users_to_groups (
ID @SERIAL_TYPE@,
UserID @SERIAL_REF_TYPE@ NOT NULL,
GroupID @SERIAL_REF_TYPE@ NOT NULL,
Disabled SMALLINT NOT NULL DEFAULT '0',
Comment VARCHAR(1024),
UNIQUE (UserID,GroupID),
FOREIGN KEY (UserID) REFERENCES @PREFIX@users(ID),
FOREIGN KEY (GroupID) REFERENCES @PREFIX@groups(ID)
) @CREATE_TABLE_SUFFIX@;
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,
) @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@;
Robert Anderson
committed
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/* Client to realm mapping */
CREATE TABLE @PREFIX@clients_to_realms (
ID @SERIAL_TYPE@,
ClientID @SERIAL_REF_TYPE@ NOT NULL,
RealmID @SERIAL_REF_TYPE@ NOT NULL,
Disabled SMALLINT NOT NULL DEFAULT '0',
Comment VARCHAR(1024),
UNIQUE (ClientID,RealmID),
FOREIGN KEY (ClientID) REFERENCES @PREFIX@clients(ID),
FOREIGN KEY (RealmID) REFERENCES @PREFIX@realms(ID)
) @CREATE_TABLE_SUFFIX@;
/* Clients */
CREATE TABLE @PREFIX@clients (
ID @SERIAL_TYPE@,
Name VARCHAR(255) NOT NULL,
AccessList VARCHAR(255),
Disabled SMALLINT NOT NULL DEFAULT '0',
UNIQUE (Name)
) @CREATE_TABLE_SUFFIX@;
/* Client attributes */
CREATE TABLE @PREFIX@client_attributes (
ID @SERIAL_TYPE@,
ClientID @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 (ClientID) REFERENCES @PREFIX@clients(ID)
) @CREATE_TABLE_SUFFIX@;
ID @SERIAL_TYPE@,
/* 1 = traffic topup, 2 = uptime topup */
Type @INT_UNSIGNED@,
ValidFrom DATETIME,
ValidTo DATETIME,
Value @INT_UNSIGNED@,
Depleted SMALLINT NOT NULL DEFAULT '0',
FOREIGN KEY (UserID) REFERENCES @PREFIX@users(ID)
) @CREATE_TABLE_SUFFIX@;
/* Topups Summary */
CREATE TABLE @PREFIX@topups_summary (
ID @SERIAL_TYPE@,
FOREIGN KEY (TopupID) REFERENCES @PREFIX@topups(ID)
) @CREATE_TABLE_SUFFIX@;
/* Accounting */
CREATE TABLE @PREFIX@accounting (
ID @SERIAL_TYPE@,
Username VARCHAR(255),
ServiceType @INT_UNSIGNED@,
FramedProtocol @INT_UNSIGNED@,
NASPort VARCHAR(255),
NASPortType @INT_UNSIGNED@,
CallingStationID VARCHAR(255),
CalledStationID VARCHAR(255),
NASPortID VARCHAR(255),
AcctSessionID VARCHAR(255),
FramedIPAddress VARCHAR(16),
AcctAuthentic @INT_UNSIGNED@,
EventTimestamp DATETIME,
NASIdentifier VARCHAR(255),
NASIPAddress VARCHAR(16),
AcctDelayTime @INT_UNSIGNED@,
AcctSessionTime @INT_UNSIGNED@,
AcctInputOctets @INT_UNSIGNED@,
AcctInputGigawords @INT_UNSIGNED@,
AcctInputPackets @INT_UNSIGNED@,
AcctOutputOctets @INT_UNSIGNED@,
AcctOutputGigawords @INT_UNSIGNED@,
AcctOutputPackets @INT_UNSIGNED@,
AcctStatusType @INT_UNSIGNED@,
AcctTerminateCause @INT_UNSIGNED@
) @CREATE_TABLE_SUFFIX@;
CREATE INDEX @PREFIX@accounting_idx1 ON @PREFIX@accounting (Username);
/* Accounting Summary */
CREATE TABLE @PREFIX@accounting_summary (
ID @SERIAL_TYPE@,
Username VARCHAR(255),
PeriodKey DATETIME,
AcctSessionTime @INT_UNSIGNED@,
AcctInputOctets @INT_UNSIGNED@,
AcctInputGigawords @INT_UNSIGNED@,
AcctInputPackets @INT_UNSIGNED@,
AcctOutputOctets @INT_UNSIGNED@,
AcctOutputGigawords @INT_UNSIGNED@
) @CREATE_TABLE_SUFFIX@;