18/7/2013

Database testdata maken met ooo/libre-office

Filed under: — pinguim @ 12:29 pm

Dit voorbeeld gaat uit van een databank met produkten, met de volgende tabellen:

  • prd : produkt
  • cat : categorie
  • prdcat : produkt-categorie koppeling

We gebruiken een rekenblad om ze aan te maken, en importeren ze daarna in mysql, via de web-interface phpMyAdmin (moeten beide al geïnstalleerd zijn dus).

Start een nieuw, leeg rekenblad en

  • Maak 3 tab-bladen: prd, cat, prdcat.
  • Zet in prd bovenaan de titels: id, prd_name, prd_stockalarm, prd_stock, prd_lastprice, cre_date, cre_user, upd_date, upd_user
  • Vul in de eerste rij de waarden in: 1, Product1, 10, 0,0, 18/7/2013, (leeg), sys, (leeg).

Product

  • Het veld id is de key in de database, wordt automatisch toegekend, en verhoogt steeds met 1. Vul er een 100-tal in door de cel met de 1 te selecteren, en het hoekpunt rechts-beneden vast te nemen en recht naar beneden te slepen: de cellen eronder worden gevuld met opeenvolgende waarden (2, 3, 4, 5, …).
  • Het veld prd_stockalarm zetten we voor heel de kolom op 10; selecteer de 10, kopieer. Selecteer een heel bereik naar beneden en plak.

Random Stock

  • Voeg achteraan een kolomtitel toe “random stock”.
  • Tik in de eerste rij van random stock “=ROUND(RAND()*10;2)”. Kopieer naar beneden over 100 lijnen; er komen allemaal verschillende waarden in te staan.
  • Selecteer uit de kolom de random waarden, kies Edit, Copy.
  • Ga op de eerste cel staan onder prd_stock. Rechtklik, Paste Special… en kies voor waarden invullen, maar formules af. Hiermee plak je de getallen van die kolom met random waarden.

Euro 0,00

  • Maak een kolom “random prijs”, zet in de eerste cel “=ROUND(RAND()*10;2)”. Kopieer 100 naar beneden. Hiermee hebben we een prijs in Euro tot 2 cijfers na de komma nauwkeurig. Kopiëer en plak met “paste special”, enkel de waarden.

20 Cats

  • In tabblad Cat vul je de titels in: id, cat_name, cre_date, cre_user, upd_date, upd_user, en vul de id’s: vul 1 in en trek 20 rijen naar beneden
  • Vul een creatie datum en en kopieer naar alle rijen, hetzelfde met cre_user.
  • Vul onder cat_name de eerste cel met “Category1”, en trek ze 20 naar beneden.

Product – categorie koppeling

  • De koppeling heeft vooral sleutelvelden: id, prd_id, cat_id. Vul de id’s met opeenvolgende nummers, bv ook 100
  • Kopieer de kolomnamen cre_date, cre_user, upd_date, upd_user en de eerste rij van waarden uit het tabblad van de categorie, en kopieer de waarden naar de volgende rijen.
  • Kopieer de prd_id waarden uit de producten; daarmee weten we zeker dat we elk produkt hebben; of kies bv om de 20 laatste niet mee te kopiëren; die hebben dan nog geen categorie toegewezen gekregen in ons toekomstig systeem.
  • Voeg een kolom toe “randbetween”, en tik op de eeste lijn de formule: “=RANDBETWEEN(1;19)”. Daarmee maken we een willekeurige categorie; maar de laatste categorie “20” komt nog niet voer. Kopieer naar alle rijen. Kopie en plak speciaal om de waarden in de kolom cat_id te plakken.
  • Voeg rechts een kolomtitel toe “random”, en zet daarin een gewone random formule: “=RAND()”, kopieer ze over alle rijen. Selecteer de hele kolom, kopie, plak speciaal als waarde in een volgende kolom met title “random order”. Deze kolom met random waarden gebruiken we om de volgorde van de sleutels van de producten een beetje dooreen te gooien; nu lijkt er een verband te bestaan tussen de id van de koppeling en de id van het produkt, wat niet de bedoeling is.
  • Selecteer de kolommen vanaf prd_id tot random order. Kies in het Data menu de sorteeroptie. Klik eerst op opties, en zet dat de Range de kolomtitels bevat. Nu krijg je bij sorteer criteria een drop-down lijst met de kolomtitles onder “sort by”: kies “random order”
  • De eerste kolom moest blijven staan, en nu heb je een meer willekeurige invulling van de tabel met de koppeling van produkt en categorie.

Naar MySQL

  • Verwijder alle kolommen die maar dienden als tussentijdse hulp: random, random order, random prijs, random stock.
  • Start phpMyAdmin op het adres van de server of http://localhost/phpMyAdmin op je eigen computer. Ga op het hoogste niveau staan (servernaam of localhost bv), en kies de tab “Import”.

Je moet/kan daar 3 zaken opgeven:

  1. File to import: daar kies je met bestandbeheer het spreadsheet document dat je maakte.
  2. Partial import: kan je doen als je problemen ondervindt.
  3. Format of imported file: hier kies je Open Document Spreadsheet; dan krijg je wat extra opties: Options. Kijk bv naar:
    • Column names in first row: inderdaad.
    • Do not import empty rows: best wel.
  • Kies nu het bestand en “Go” om de import te starten.

Import has been successfully finished, 7 queries executed.

The following structures have either been created or altered. Here you can:

* View a structure`s contents by clicking on its name
* Change any of its settings by clicking the corresponding “Options” link
* Edit its structure by following the “Structure” link

* ODS_DB (Options)
o prd (Structure) (Options)
o cat (Structure) (Options)
o prdcat (Structure) (Options)

De naam van de database heeft hij helaas niet van het bestand genomen, maar is “ODS_DB” geworden.

Onder het tabblad “Operations” in phpMyAdmin kan je de naam veranderen: “Rename database to: ”

Als je een gebruiker aanmaakt en die de nodige rechten geeft (kan ook vanuit phpMyAdmin), is de database klaar voor gebruik:

SELECT prd_name, cat_name
FROM prd, `prdcat` , cat
WHERE prd.id = prdcat.prd_id
AND prdcat.cat_id = cat.id

SELECT cat_name, prd_name FROM prd, `prdcat`, cat WHERE prd.id=prdcat.prd_id AND prdcat.cat_id=cat.id AND cat.id<5 ORDER BY cat_id


Check zeker de omzetting bij de import; ik ontdekte dat sommige waarden niet werden gelezen en de kolommen “verschoven” ingelezen werden: als een waarde in twee opeenvolgende kolommen hetzelfde is (bv prd_stock=10 en prd_lastprice=10), wordt slechts die van prd_stock ingevuld, de andere “verdwijnt”, en er wordt voor het veld prd_lastprice verdergelezen in de volgende kolom cre_date!

17/7/2013

Konqueror KDE: de verborgen bestanden tip

Filed under: — pinguim @ 10:26 am

Ik vond het al lang irritant dat het niet eenvoudiger is om in Konqueror de verborgen bestanden “aan of af” te zetten. Vooral als je op een server ingelogd bent, wil je ze zichtbaar, omdat configuratiebestanden beginnen met een “.”. Zoals bv de “.htaccess” bestanden op een Apache webserver.
Hoewel ik nog altijd zou willen dat konqueror er een vast icoon voor krijgt*, bv gewoon een knop met een “.” op, leg ik me nu neer bij de eigenlijk zeer handige shortcut:

Alt-.

Die zet in het huidige venster de verborgen bestanden zichtbaar/onzichtbaar.

(* Settings, Configure Toolbars, Main Toolbar: kies een knop met “Show hidden files”. Maar die bestaat dus niet.)

Wie konqueror mist in KDE: hij bestaat nog, je moet hem wel naar boven werken, door in de desktop instellingen de standaard bestandsbeheerder van Dolphin naar Konqueror te zetten, en hem op te nemen in je lievelingsmenu.

10/7/2013

phpMyAdmin 3.5 configuratie

Filed under: — cybrarian @ 1:41 pm

Irritatie
PhpMyAdmin 3.5.3 (op opensuse geïnstalleerd) heeft de idiote neiging om in de kolom “aktie” niet enkel de iconen te tonen, maar ook de hele beschrijving. Die wordt dus over het hele scherm herhaald en dat is ongelooflijk irritante ruimteverspilling (zie ook vroeger artikel).

Config bestand
Normaal moet je met een config.inc.php bestand instellingen doen voor phpMyAdmin.
De instelling waar het over gaat is $cfg[‘PropertiesIconic’], die standaard op “both” staat sinds kort (
volgens de wiki.phpmyadmin.net.
Ik zet ze dus op:
$cfg['PropertiesIconic'] = true;

Vuile truuk
Helaas lukte het me niet om het aangemaakte cofiguratiebestand te laten lezen door phpMyAdmin, dus ik paste die standaardinstelling aan in hun code:

phpMyAdmin/libraries/config.default.php

Let op de syntax; het is niet

  • ‘TRUE’
  • ‘true’
  • TRUE

maar gewoon true zonder tekens errond.

Powered by WordPress