3. září 2006

Informační systém pro HFN

Dnes jsem se bavil s Lubošem a tak nějak jsme dospěli k tomu, že HFN by potřebovalo informační systém pro vedení seznamu uživatelů, AP, ip adres ...

Sám nad tímto systémem přemýšlím už mrtě dlouho, v podstatě mám představu co vše by měl umět, jak by měl fungovat. Jen není čas a chuť to realizovat, vytvořit ho. Nepřijde mi to jako dostatečná výzva, kterou byl například e-mailový či jabber server. Prostě nuda. Vím, že řešení existuje, tím to pro mě hasne.

Teda kdybych měl čas si s tím hrát, tak se do toho pustím, ale teď pracuji na projektech, které mám zaplacené a/nebo jsou pro mě výzvou. Nicméně po dnešním rozhovoru jsem udělal aspoň část, asi to nejdůležitější - základ databáze, integritní omezení, kontroly na hodnoty... Luboš říkal že se domluví s maximusem, a když jsem pak s maximusem později mluvi, tak v DB už byly nasázené hodnoty.

Ještě jsem pak pozměnil integritní omezení pro některé hodnoty a poupravil pár záznamů aby daným integritním omezením vyhovovaly. Databáze vypadá následovně:
hfnis=> \\dt
List of relations
Schema | Name | Type | Owner
--------+-----------+-------+-------
public | ap | table | hfnis
public | ip_adresy | table | hfnis
public | lokalita | table | hfnis
public | uzivatele | table | hfnis
(4 rows)

hfnis=> \\d lokalita
Table "public.lokalita"
Column | Type | Modifiers
----------+------------------------+----------------------------------------------------------
id | integer | not null default nextval('public.lokalita_id_seq'::text)
nazev | character varying(255) | not null
poznamka | text |
psc | character(6) |
Indexes:
"lokalita_id_pkey" PRIMARY KEY, btree (id)
"lokalita_nazev_uniq" UNIQUE, btree (nazev)
Check constraints:
"lokalita_psc_chk" CHECK (psc ~* '[0-9]{3} [0-9]{2}'::text)

hfnis=> \\d ap
Table "public.ap"
Column | Type | Modifiers
----------+-----------------------+----------------------------------------------------
id | integer | not null default nextval('public.ap_id_seq'::text)
nazev | character varying(20) | not null
poznamka | text |
Indexes:
"ap_id_pkey" PRIMARY KEY, btree (id)
"ap_nazev_uniq" UNIQUE, btree (nazev)

hfnis=> \\d uzivatele
Table "public.uzivatele"
Column | Type | Modifiers
-------------+-----------------------------+-----------------------------------------------------------
id | integer | not null default nextval('public.uzivatele_id_seq'::text)
jmeno | character varying(50) | not null
email | character varying(255) | not null
telefon | character varying(14) |
pripojen | timestamp without time zone | default now()
vs | integer |
mac | character varying(17) |
id_lokality | integer |
poznamka | text |
nick | character varying(20) | not null
skupina | character(1) | default 'C'::bpchar
adresa | character varying(255) |
Indexes:
"uzivatele_id_pkey" PRIMARY KEY, btree (id)
"uzivatele_nick_uniq" UNIQUE, btree (nick)
Check constraints:
"uzivatele_skupina_chk" CHECK (skupina ~* '^[ABC]$'::text)
"uzivatele_telefon_chk" CHECK (telefon::text ~* '^(+420){0,1}[0-9]{9}$'::text)
"uzivalte_nick_chk" CHECK (nick::text ~* '^[A-Za-z0-9]*$'::text)
"uzivatele_mac_chk" CHECK (mac::text ~* '([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}'::text)
Foreign-key constraints:
"uzivatele_lokalita_fkey" FOREIGN KEY (id_lokality) REFERENCES lokalita(id)

hfnis=> \\d ip_adresy
Table "public.ip_adresy"
Column | Type | Modifiers
-------------+-----------------------+-----------
id_majitele | integer |
id_ap | integer |
ip | inet | not null
mac | character varying(17) | not null
poznamka | text |
verejna | inet |
Check constraints:
"ip_adresy_mac_chk" CHECK (mac::text ~* '([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}'::text)
Foreign-key constraints:
"ip_adresy_ap_fkey" FOREIGN KEY (id_ap) REFERENCES ap(id) ON UPDATE RESTRICT ON DELETE RESTRICT
"ip_adresy_majitel_fkey" FOREIGN KEY (id_majitele) REFERENCES uzivatele(id) ON UPDATE RESTRICT ON DELETE RESTRICT

1 komentář:

  1. Když se na to teď tak dívám, tak tam chybí tabulky ještě pro DNS a ftp, ale to bych řekl, že jsou celkem samostatné služby. A rozhodně by to mělo jít časem snadno přidat.

    OdpovědětSmazat