Uit Hack42
Ga naar: navigatie, zoeken
Regel 86: Regel 86:
 
   naam            varchar(80),
 
   naam            varchar(80),
 
   logo            varchar(80), -- link naar image op wiki
 
   logo            varchar(80), -- link naar image op wiki
   artikel        varchar(80) -- link naar artikel op wiki
+
   artikel        varchar(80), -- link naar artikel op wiki
 +
  fab_id          serial
 
);
 
);
  
 
CREATE TABLE hw_model (  
 
CREATE TABLE hw_model (  
   fabrikant      varchar(80),
+
   fab_id        int,
 
   modelnaam      varchar(80),
 
   modelnaam      varchar(80),
 
   handelsnaam    varchar(80),
 
   handelsnaam    varchar(80),
 +
  fab_mod_id    serial,
 
   categorie      varchar(20), -- systeem/peripheral/network/comms
 
   categorie      varchar(20), -- systeem/peripheral/network/comms
 
   prod_start    date,
 
   prod_start    date,
Regel 101: Regel 103:
  
 
CREATE TABLE hw_model_system ( -- per-model data voor systemen
 
CREATE TABLE hw_model_system ( -- per-model data voor systemen
   fabrikant        varchar(80),
+
   fab_mod_id      int,
  modelnaam        varchar(80),
 
 
   model_sys_type  varchar(20) -- desktop/handheld/home/server/werkstation ...
 
   model_sys_type  varchar(20) -- desktop/handheld/home/server/werkstation ...
 
   model_arch      varchar(20),
 
   model_arch      varchar(20),
Regel 112: Regel 113:
  
 
CREATE TABLE hw_model_periph ( -- per-model data voor peripherals
 
CREATE TABLE hw_model_periph ( -- per-model data voor peripherals
   fabrikant        varchar(80),
+
   fab_mod_id      int,
  modelnaam        varchar(80),
 
 
   model_peri_categ varchar(20), -- input/output/inout
 
   model_peri_categ varchar(20), -- input/output/inout
 
   model_peri_type  varchar(20), -- kbd/muis/tablet/monitor/ponsbandlezer/schrijver/etc.
 
   model_peri_type  varchar(20), -- kbd/muis/tablet/monitor/ponsbandlezer/schrijver/etc.
Regel 123: Regel 123:
  
 
CREATE TABLE hw_model_storage ( -- per-model data voor storage
 
CREATE TABLE hw_model_storage ( -- per-model data voor storage
   fabrikant        varchar(80),
+
   fab_mod_id      int,
  modelnaam        varchar(80),
 
 
   model_stor_type  varchar(20), -- FD/HD/tape/removable/MO/Bernoully/etc...
 
   model_stor_type  varchar(20), -- FD/HD/tape/removable/MO/Bernoully/etc...
 
   model_conn      varchar(20), -- type connectie naar systeem  
 
   model_conn      varchar(20), -- type connectie naar systeem  
Regel 135: Regel 134:
  
 
CREATE TABLE hw_item_system ( -- per-item data voor systemen
 
CREATE TABLE hw_item_system ( -- per-item data voor systemen
   fabrikant        varchar(80),
+
   fab_mod_id      int,
  modelnaam        varchar(80),
 
 
   invent_id        serial,
 
   invent_id        serial,
 
   item_serial      varchar(20),
 
   item_serial      varchar(20),
Regel 155: Regel 153:
  
 
CREATE TABLE hw_item_periph ( -- per-item data voor peripherals
 
CREATE TABLE hw_item_periph ( -- per-item data voor peripherals
   fabrikant        varchar(80),
+
   fab_mod_id      int,
  modelnaam        varchar(80),
 
 
   invent_id        serial,
 
   invent_id        serial,
 
   item_serial      varchar(20),
 
   item_serial      varchar(20),
Regel 172: Regel 169:
  
 
CREATE TABLE hw_item_storage ( -- per-item data voor storage
 
CREATE TABLE hw_item_storage ( -- per-item data voor storage
   fabrikant        varchar(80),
+
   fab_mod_id      int,
  modelnaam        varchar(80),
 
 
   invent_id        serial,
 
   invent_id        serial,
 
   item_serial      varchar(20),
 
   item_serial      varchar(20),
Regel 187: Regel 183:
 
   ...
 
   ...
 
);
 
);
 
 
 
  
 
</pre>
 
</pre>

Versie van 22 aug 2014 12:38

Waar moet de database aan voldoen

  • webbased editen
  • text based editen (evt. lynx
  • beperkt publiek toegankelijk via andere url.


Wat voor soorten objecten hebben we?

  1. systemen - iets met een soort van CPU en memory, waar een OS op draait
    1. "universele" - OS wordt extern geladen, aanpasbaar met uitbreidingskaarten, etc.
    2. "dedicated" - OS in firmware, single task (rekenmachines e.d.)
  2. peripherals - in/uitvoer voor bovenstaand
    1. invoer (keyboards, tablets, muizen, trackballs, kaartlezers, barcode scanners etc.)
    2. uitvoer (printers, plotters, kaartponsers, monitoren)
    3. combinatie van bovenstaande 2 (terminal, kaartlezer+ponser, etc.)
    4. opslag (harddisks, floppies, bernoully, MO, magtape, paper tape, etc.)
    5. netwerk
    6. andere comms (modems, acoustic couplers, current loop converters, etc.)
  3. specials
    1. (electro)mechanische reken- en typmachines
    2. discrete elektronica
    3. purpose-built spul (testapparatuur, etc.)
  4. media
  5. documentatie
    1. algemeen
    2. specifiek (install/user/sys.mgmgt/prog/service manuals)

Wat moeten we per object opslaan? (n.b. dit zal varieren per soort object)

Algemeen

  • modelspecifiek:
    • "Meer info" (externe links)
    • Knowhow
  • exemplaarspecifiek
    • uniek catalogusnummer met QR/barcode
    • bijzonderheden
    • herkomst
    • datum binnenkomst
    • Foto's (of link naar gallery/mediawiki)
    • Edited by

Voor hardware

Structuur:

  1. fabrikant
    1. model 1
      1. exemplaar 1
      2. exemplaar 2
      3. ...
    2. model 2
      1. exemplaar 1
      2. ...
    3. ...
  2. ...
  • algemeen: fabrikant, model, algemene specs (architectuur e.d.), productieperiode
  • specifiek: configuratie/variant, serienummer, productiedatum, andere kenmerken, "hoort bij", status

Voor media

Structuur:

  1. fabrikant/leverancier
    1. pakket 1
    2. pakket 2
    3. ...
  2. ...

Een extra relationele laag lijkt me hier niet nodig omdat we waarschijnlijk zelden meerdere exemplaren van hetzelfde pakket zullen hebben, en hetzelfde pakket op verschillende media verschillende SKUs zal hebben.

  • pakket, SKU, versie, mediatype, "hoort bij", kopie/image gemaakt + naam + datum
    • voor OSen: target systeem/config/specs
    • voor applicaties: target OS, requirements, restricties.

Voor documentatie

  • leverancier/uitgever, auteur, titel, ISBN/SKU, datum
    • specifieke docs: "hoort bij", versie, gescanned + filenaam + datum


overpeinzing

  • hoe om te gaan met itemX onder verkoopnaam Y
    • lijkt me niet zo moeilijk. "Model" heeft altijd een modelnaam/nummer (bijv. VX40B-F2); verkoopnaam (DEC Multia Alpha) is optioneel. Alleen onze pedantic mediawiki valt op een rare manier over een lege naam (indien leeg wordt 'rubriek' genegeerd, en komt het systeem dus niet in Museum). Voor $whateverSQL moet dat geen probleem zijn. Wikilink wordt fabrikant + verkoopnaam, of fabrikant + modelnummer indien verkoopnaam leeg.

DDL

CREATE TABLE fabrikant (
  naam            varchar(80),
  logo            varchar(80), -- link naar image op wiki
  artikel         varchar(80), -- link naar artikel op wiki
  fab_id          serial
);

CREATE TABLE hw_model ( 
   fab_id         int,
   modelnaam      varchar(80),
   handelsnaam    varchar(80),
   fab_mod_id     serial,
   categorie      varchar(20), -- systeem/peripheral/network/comms
   prod_start     date,
   prod_end       date,
   knowhow        varchar(80), -- wikinamen
   ...
);

CREATE TABLE hw_model_system ( -- per-model data voor systemen
   fab_mod_id       int,
   model_sys_type   varchar(20) -- desktop/handheld/home/server/werkstation ...
   model_arch       varchar(20),
   model_bus        varchar(20),
   model_os         varchar(80), -- welk OS kan op deze machine draaien
   ...
   model_more_info  text -- links naar meer info, docs, etc.
);

CREATE TABLE hw_model_periph ( -- per-model data voor peripherals
   fab_mod_id       int,
   model_peri_categ varchar(20), -- input/output/inout
   model_peri_type  varchar(20), -- kbd/muis/tablet/monitor/ponsbandlezer/schrijver/etc.
   model_conn       varchar(20), -- type connectie naar systeem 
   model_tied_to_system varchar(80),  -- "hoort bij"
   ...
   model_more_info  text -- links naar meer info, docs, etc.
);

CREATE TABLE hw_model_storage ( -- per-model data voor storage
   fab_mod_id       int,
   model_stor_type  varchar(20), -- FD/HD/tape/removable/MO/Bernoully/etc...
   model_conn       varchar(20), -- type connectie naar systeem 
   model_tied_to_system varchar(80),  -- "hoort bij"
   ...
   model_more_info  text -- links naar meer info, docs, etc.
);



CREATE TABLE hw_item_system ( -- per-item data voor systemen
   fab_mod_id       int,
   invent_id        serial,
   item_serial      varchar(20),
   item_volgnummer  int, -- voor meerdere items van hetzelfde model
   item_config      varchar(20), -- config variant
   item_hw_list     text,
   item_os          varchar(20),
   item_os_vers     varchar(20),
   item_in_date     date,
   item_herkomst    varchar(80),
   item_status      varchar(20)[], -- array met status
   item_status_date date[], -- array van data waarop status gewijzigd is
   item_status_user varchar(80), -- array met wie status gewijzigd heeft
   item_pics        varchar(80), -- link naar (folder met) foto's
   item_article     text, -- of link naar wikipagina??
   ...
);

CREATE TABLE hw_item_periph ( -- per-item data voor peripherals
   fab_mod_id       int,
   invent_id        serial,
   item_serial      varchar(20),
   item_volgnummer  int, -- voor meerdere items van hetzelfde model
   item_in_date     date,
   item_herkomst    varchar(80),
   item_fw_vers     varchar(20),
   item_status      varchar(20)[], -- array met status
   item_status_date date[], -- array van data waarop status gewijzigd is
   item_status_user varchar(80), -- array met wie status gewijzigd heeft
   item_pics        varchar(80), -- link naar (folder met) foto's
   item_article     text, -- of link naar wikipagina??
   ...
);

CREATE TABLE hw_item_storage ( -- per-item data voor storage
   fab_mod_id       int,
   invent_id        serial,
   item_serial      varchar(20),
   item_volgnummer  int, -- voor meerdere items van hetzelfde model
   item_in_date     date,
   item_herkomst    varchar(80),
   item_fw_vers     varchar(20),
   item_status      varchar(20)[], -- array met status
   item_status_date date[], -- array van data waarop status gewijzigd is
   item_status_user varchar(80), -- array met wie status gewijzigd heeft
   item_pics        varchar(80), -- link naar (folder met) foto's
   item_article     text, -- of link naar wikipagina??
   ...
);