Schema’s

In PostgreSQL (en de meeste andere databasesystemen) wordt gewerkt met zgn. schema’s. Een schema is onderdeel van je database, onder het schema definieer je de tabellen, datatypes, views, procedures etc. Je kunt in 1 database meerdere schema’s definiëren, per schema kun je verschillende rechten uitdelen.

Zo zou je dus bijvoorbeeld kunnen denken aan de volgende structuur voor deze applicatie:

- Een schema waarin alle data wordt opgeslagen, het useraccount van je applicatie krijgt hier per definitie géén toegang (Het base schema )
- Een schema waarin je de API bouwt, de API leest en schrijft naar het schema met de data. Het useraccount van je applicatie geef je alleen rechten op het API-schema.

Met bovenstaande structuur bouw je dus een enorm stuk veiligheid in. Vanuit de applicatie kan men theoretisch gezien nooit verder komen als het API-schema, de data blijft gewaarborgd en is slechts te benaderen/manipuleren via SP’s welke je in de API hebt gedefinieerd.

Je kunt via SQL bepalen welk schema je wilt benaderen, hieronder een voorbeeld waarmee gegevens uit het "base"-schema worden gelezen, waarin de daadwerkelijke tabellen staan opgeslagen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT id, orderdate FROM base.tbl_order_head WHERE user_id=1;


Je kunt PostgreSQL ook forceren gebruik te maken van (een volgorde van bepaalde) schema‘s. Met behulp van de variabele search_path bepaal je de volgorde waarin entiteiten worden gezocht:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SET search_path base, api;
// tbl_order_head zal nu eerst worden gezocht in het base-schema en vervolgens in api-schema
SELECT id, orderdate FROM tbl_order_head;

SET search_path api;
// tbl_order_head wordt nu niet gevonden
SELECT id, orderdate FROM tbl_order_head;


Deze tutorial maakt gebruik van 2 schema’s: base en api. Zorg ervoor dat deze schema’s bestaan en dat je hier voldoende rechten op hebt.

Meer informatie over schema’s vind je op http://www.postgresql.org/docs/current/static/ddl-schemas.html

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Voorbeeldcase
  3. Schema’s
  4. SQL Code en relaties
  5. Stored Procedures en het gebruik hiervan in je app
  6. Toevoegen van een order
  7. Voorbeeld van het gebruik in PHP
  8. Afsluiting

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.