[aur-dev] [PATCH 1/2] Add "Bans" table to database schema
canyonknight
canyonknight at gmail.com
Tue Mar 19 20:43:59 EDT 2013
On Tue, Mar 19, 2013 at 8:21 PM, Dan McGee <dpmcgee at gmail.com> wrote:
> On Tue, Mar 19, 2013 at 7:17 PM, canyonknight <canyonknight at gmail.com> wrote:
>> The "Bans" table creates a DB structure for the ability to ban IP
>> addresses. It takes an IP address converted by ip2long(). It can easily
>> be extended for other features such as time limits (for temporary bans).
>>
>> The table will eventually be able to be populated directly through
>> the web interface by Trusted Users and Developers.
>>
>> Signed-off-by: canyonknight <canyonknight at gmail.com>
>> ---
>> UPGRADING | 11 +++++++++++
>> support/schema/aur-schema.sql | 9 +++++++++
>> 2 files changed, 20 insertions(+)
>>
>> diff --git a/UPGRADING b/UPGRADING
>> index 9c05467..7d13c43 100644
>> --- a/UPGRADING
>> +++ b/UPGRADING
>> @@ -11,6 +11,17 @@ ALTER TABLE Users
>> ADD COLUMN LastLoginIPAddress INTEGER UNSIGNED NOT NULL DEFAULT 0;
>> ----
>>
>> +2. Add a new "Bans" table:
>> +
>> +----
>> +CREATE TABLE Bans (
>> + ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
>> + IPAddress INTEGER UNSIGNED NOT NULL DEFAULT 0,
>> + PRIMARY KEY (ID),
>> + UNIQUE (IPAddress)
>> +) ENGINE = InnoDB;
>> +----
>> +
>> From 2.0.0 to 2.1.0
>> -------------------
>>
>> diff --git a/support/schema/aur-schema.sql b/support/schema/aur-schema.sql
>> index fab40d6..2d268fa 100644
>> --- a/support/schema/aur-schema.sql
>> +++ b/support/schema/aur-schema.sql
>> @@ -213,3 +213,12 @@ CREATE TABLE IF NOT EXISTS TU_Votes (
>> FOREIGN KEY (VoteID) REFERENCES TU_VoteInfo(ID) ON DELETE CASCADE,
>> FOREIGN KEY (UserID) REFERENCES Users(ID) ON DELETE CASCADE
>> ) ENGINE = InnoDB;
>> +
>> +-- Malicious user banning
>> +--
>> +CREATE TABLE Bans (
>> + ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
>> + IPAddress INTEGER UNSIGNED NOT NULL DEFAULT 0,
>> + PRIMARY KEY (ID),
>> + UNIQUE (IPAddress)
>> +) ENGINE = InnoDB;
>
> Why bother with an ID column at all here, since your IPAddress column
> is unique, an integer, and could be it's own primary key?
I had done it for insertion order purposes, but your timestamp idea is better.
>
> Finally, I would highly recommend adding a created timestamp in lieu
> of an ID; it still gives insertion order but also relative time
> spacing of said insertions, and would allow gradual aging out of old
> entries if that was ever desired in the future.
>
> -Dan
More information about the aur-dev
mailing list