Uit Hack42
k (→DDL) |
|||
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) | + | artikel varchar(80), -- link naar artikel op wiki |
+ | fab_id serial | ||
); | ); | ||
CREATE TABLE hw_model ( | CREATE TABLE hw_model ( | ||
− | + | 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 | ||
− | + | fab_mod_id int, | |
− | |||
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 | ||
− | + | fab_mod_id int, | |
− | |||
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 | ||
− | + | fab_mod_id int, | |
− | |||
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 | ||
− | + | fab_mod_id int, | |
− | |||
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 | ||
− | + | fab_mod_id int, | |
− | |||
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 | ||
− | + | fab_mod_id int, | |
− | |||
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 11: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?
- systemen - iets met een soort van CPU en memory, waar een OS op draait
- "universele" - OS wordt extern geladen, aanpasbaar met uitbreidingskaarten, etc.
- "dedicated" - OS in firmware, single task (rekenmachines e.d.)
- peripherals - in/uitvoer voor bovenstaand
- invoer (keyboards, tablets, muizen, trackballs, kaartlezers, barcode scanners etc.)
- uitvoer (printers, plotters, kaartponsers, monitoren)
- combinatie van bovenstaande 2 (terminal, kaartlezer+ponser, etc.)
- opslag (harddisks, floppies, bernoully, MO, magtape, paper tape, etc.)
- netwerk
- andere comms (modems, acoustic couplers, current loop converters, etc.)
- specials
- (electro)mechanische reken- en typmachines
- discrete elektronica
- purpose-built spul (testapparatuur, etc.)
- media
- documentatie
- algemeen
- 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:
- fabrikant
- model 1
- exemplaar 1
- exemplaar 2
- ...
- model 2
- exemplaar 1
- ...
- ...
- model 1
- ...
- algemeen: fabrikant, model, algemene specs (architectuur e.d.), productieperiode
- specifiek: configuratie/variant, serienummer, productiedatum, andere kenmerken, "hoort bij", status
Voor media
Structuur:
- fabrikant/leverancier
- pakket 1
- pakket 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?? ... );