Whelp we're back form the Arin Conference in Las Vegas. I'm down $60 but
I think I've got a good base for the RWHOIS/SWIP interface portion
of FreeIPdb (compliant with the 2002 templates :-)
 
Looking for Input before I start coding.

        IP Justification (arin)  

                               /-------\  
                               | Block |
                               \-------/
                                   |
                                  /|\
              /-------\    /---------------\   /----------\   /-----\
              | POC   |>---| Justification |---| Org/addr |--<| POC |
              \-------/    \---------------/   \----------/   \-----/
                                   |
                                   |
                                  /|\
                               /--------\
                               |  Uses  |
                               \--------/
        
[Block]
        one IP address assignment/allocation in the database.
        (each [Block] has a unique ID number)

[Justification]
        Every time a user/customer is asked to Justify a block
        a [Justification] will be created. (So in the 1-1A rule there
        would be 2 per block (with different times).
        This table does contain basic Q?'s like
        VLSM/CIDR and why not as well as nat or BGP.

[POC]
        Point of Contact A listing user contact information

[Org/addr]
        The company name and address (as seen in a SWIP)

[Uses]
        A value tied to a question:

        [Question:]             [Value]
        Webhosts                100  
        Dialports:              100
        Dialusers:              100 


--- Rules ---
        Every [Block] will have ZERO or MORE [Justification].
        Every [Justification] MUST have EXACTLY ONE [Org/addr].
        Every [Justification] MUST have ONE or MORE [POC].
        Every [Justification] MAY have ZERO or MORE [Uses]

Rules can be added per RA to say things like:
        If Dialports is used user must set Dialusers as well.
        and how many POCS a block can have etc...


CREATE TABLE JUSTIFICATIONTABLE (
        ID              SERIAL,
        BLOCK           INT,    -- IPDB.ID
        TIME            INT,
        ORG             INT,    -- ORGADDRTABLE.ORGID
        NAT             TEXT,
        VLSM            TEXT,
        BGP             TEXT,
        COMMENT         TEXT,
        APPROVED        INT,    -- Date of internal approval
        APPROVEDBY      VARCHAR(30), -- username of apporver.
        TPOC            INT     -- USEYTPETABLE.POCID
);

CREATE TABLE INADDRTABLE(
        JUSTID          INT,    -- JUSTIFICATIONTABLE.ID
        SERVER          VARHCAR(256),
);

CREATE TABLE ORGADDRTABLE (
        ORGID           SERIAL,
        ORGCODE         VARCHAR(14),-- ? format???
        ORGNAME         VARCHAR(150),
        ORGADDRESS      TEXT,
        ORGCITY         VARHCAR(60),
        ORGSTATE        VARCHAR(60),
        ORGPOST         VARHCAR(60),
        ORGCOUNTRY      VARHCAR(3),
        COMMENT         TEXT
);

CREATE TABLE POCTABLE (
        POCID           SERIAL,
        POCTYPE         VARCHAR(1), -- R = role P = person
        POCLAST         VARCHAR(255), -- or Role account
        POCFIRST        VARCHAR(255),
        POCMIDDLE       VARCHAR(255),
        POCCOMAPNY      VARCHAR(255),
        POCADDRESS      TEXT,
        POCCITY         VARHCAR(60),
        POCSTATE        VARCHAR(60),
        POCPOST         VARHCAR(60),
        POCCOUNTRY      VARHCAR(3),
        COMMENT         TEXT
);

CREATE TABLE POCORGTABLE (
        ORGID           INT,    -- ORGADDRTABLE.ORGID
        POCID           INT,    -- POCTABLE.POCID
        TYPE            VARCHAR(1)
);

CREATE TABLE POCJUSTTABLE (
        JUSTID          INT,    -- JUSTIFICATIONTABLE.ID
        POCID           INT,    -- POCTABLE.POCID
        TYPE            VARCHAR(1)
);

CREATE TABLE POCPHONETABLE (
        POC             INT,    --POCTABLE.POCID
        PHONETYPE       VARCHAR(1),
        NUMBER          VARCHAR(60),
        EXTENSION       VARCHAR(30)
);

CREATE TABLE POCEMAILTABLE (
        POC             INT,    --POCTABLE.POCID
        EMAIL           VARCHAR(150)
);


CREATE TABLE USEYTYPETABLE (
        ID      SERIAL,
        NAME    VARHCAR(60)
);

INSERT INTO USEYTYPETABLE (NAME) VALUES ('Dial-up');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Cable');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Web Hosting');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Leased Line');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('xDSL');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Co-Location');
INSERT INTO USEYTYPETABLE (NAME) VALUES ('Wireless');

CREATE TABLE USETABLE(
        ID      SERIAL,
        JUST    INT,    -- JUSTIFICATIONTABLE.ID
        TYPE    INT,    -- USEYTPETABLE.ID
        VALUE   INT
);

-- 
We will lose this war without firing a shot 
if we sacrifice the liberties of the American people.
                Sen. Russell Feingold, D-Wis.

Reply via email to