Toon posts:

[ASP] Opzetten database; wat is de beste manier?

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste tweakers,

momenteel ben ik bezig met het vernieuwen van mijn website. De module die ik momenteel op mijn website heb is nu nog in php met een mysql database, maar deze moet omgezet worden naar asp met een bijhorende database.

Omdat ik dit nog niet eerder heb gedaan ben ik eerst op zoek gegaan naar een hoop tutorials, en het is nu duidelijk voor me hoe ik gegevens kan toevoegen, wijzigen en verwijderen in een Acces database. Tevens weet ik nu hoe ik deze database kan laten zien in een HTML pagina.

Nu heb ik echter twee vraagjes;

- Is MS acces de meest gebruikte database als het om ASP gegevens gaat? Of is deze wellicht niet handig? Na een database gemaakt te hebben met 1 tabel is het database-bestand meer dan 400 kb, zonder gegevens erin!

- De module moet bestaan uit een paar belangrijke punten.
De tabellen die ik op mijn website zal publishen zullen bestaan uit 6 verschillende velden. Ik zal even een heel stom voorbeeldje geven- het is de bedoeling dat het er zeg maar zo uit gaat zien:

Naam1 Leeftijd1 Kleurhaar1 Kleurogen1 Email1 Website1
Naam2 Leeftijd2 Kleurhaar2 Kleurogen2 Email2 Website2
Naam3 Leeftijd3 Kleurhaar3 Kleurogen3 Email3 Website3
etc, etc.

Het zal dus een lange lijst worden met gegevens.
Ik zal waarschijnlijk ik totaal rond de duizend verschillende 'rijen' nodig hebben. Om dit overzichtelijk op mijn website te laten zien, zal er tevens bij elke toevoeging moet aangeven worden in welke categorie ze moeten worden geplaatst. Elke categorie heeft namelijk zijn eigen pagina. Er zullen 10 vaste categorien worden gemaakt. Denk bijvoorbeeld maar aan mijn eerder genoemde voorbeeld- er zullen 10 pagina's worden gemaakt worden met verschillende beroepensectoren.
Nu is mij vraag; hoe kan ik de database dan het beste opzetten? Moet ik dan voor elke beroepensector een nieuwe tabel maken? Of maak ik ik gewoon 1 tabel voor alle gegevens, met als veld in het tabel Categorien? Als dit laatste het makkelijkste is- hoe roep ik dan per pagina de juiste categorie aan?

De categorien moeten dus niet voorkomen in de rij, het is echt slechts om de grote hoeveelheid informatie in 10 stukken te delen.

(Ik heb voordat ik deze post opstelde even in de FAQ gekeken, volgens mij houd ik me goed aan de regels ;))

Alvast heel erg bedankt! :)

  • bonzz.netninja
  • Registratie: Oktober 2001
  • Laatst online: 23-08 11:43

bonzz.netninja

Niente baffi

beste combiantie voor ASP is naar mijn mening met SQL server van MS

database opzetten begint bij stap1: het normaliseren vamn de gegevens en de bachman shcema

vuistdiep in het post-pc tijdperk van Steve  | Joepie joepie. Dat ging echt toppie! | https://www.wegmetbigtech.nl


Verwijderd

Verwijderd schreef op 29 March 2003 @ 14:13:
momenteel ben ik bezig met het vernieuwen van mijn website. De module die ik momenteel op mijn website heb is nu nog in php met een mysql database, maar deze moet omgezet worden naar asp met een bijhorende database.
Je kan je mysql database ook benaderen via asp. Dan ben je ook je content niet kwijt...

Maar de keuze van database hangt voornamelijk af van hoeveel gebruikers je hebt, hoeveel tegelijk en wat/hoeveel erin komt. Access word snel heel groot maar is dan weer veel goedkoper dan MSSQL.

[ Voor 20% gewijzigd door Verwijderd op 29-03-2003 14:20 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 29 March 2003 @ 14:13:
- Is MS acces de meest gebruikte database als het om ASP gegevens gaat? Of is deze wellicht niet handig? Na een database gemaakt te hebben met 1 tabel is het database-bestand meer dan 400 kb, zonder gegevens erin!
In de tutorials wordt meestal de combinatie ASP / Access en PHP / MySQL gepromoot. Soms komt ook de combinatie ASP / SQL server voor. Echter, ASP / MySQL is ook een combinatie die goed werkt, geen enkel probleem. De keuze SQL Server of Access is vooral afhankelijk van de belasting en de 'waarde' van je data. Een site, welke 200 bezoekers per dag krijgt, kan met gemak op Access draaien, bij wijze van spreken. 400.000 records stoppen in een Access database is echter mishandeling.. :)
400kb is iig niets en een hele kleine database.
- De module moet bestaan uit een paar belangrijke punten.
De tabellen die ik op mijn website zal publishen zullen bestaan uit 6 verschillende velden. Ik zal even een heel stom voorbeeldje geven- het is de bedoeling dat het er zeg maar zo uit gaat zien:

Naam1 Leeftijd1 Kleurhaar1 Kleurogen1 Email1 Website1
Naam2 Leeftijd2 Kleurhaar2 Kleurogen2 Email2 Website2
Naam3 Leeftijd3 Kleurhaar3 Kleurogen3 Email3 Website3
etc, etc.
Dus, als je er een tabel van gaat maken:
tabel persoon
PersoonID int auto-increment
Naam varchar
Leeftijd gebdatum datetime
kleurogen varchar
email varchar
website varchar
Het zal dus een lange lijst worden met gegevens.
Ik zal waarschijnlijk ik totaal rond de duizend verschillende 'rijen' nodig hebben.
Erhm.. Dus? Daar is een database voor gemaakt. 1000 rijen is niet veel. 10000 rijen is ook niet veel.
Om dit overzichtelijk op mijn website te laten zien, zal er tevens bij elke toevoeging moet aangeven worden in welke categorie ze moeten worden geplaatst. Elke categorie heeft namelijk zijn eigen pagina. Er zullen 10 vaste categorien worden gemaakt. Denk bijvoorbeeld maar aan mijn eerder genoemde voorbeeld- er zullen 10 pagina's worden gemaakt worden met verschillende beroepensectoren.
Een persoon valt in een categorie? :?
Nu is mij vraag; hoe kan ik de database dan het beste opzetten? Moet ik dan voor elke beroepensector een nieuwe tabel maken?
Nee, de data lijkt op elkaar, afgezien van enkele veldwaarden. Dus alles in 1 tabel zetten.
Of maak ik ik gewoon 1 tabel voor alle gegevens, met als veld in het tabel Categorien? Als dit laatste het makkelijkste is- hoe roep ik dan per pagina de juiste categorie aan?
Daar hebben ze JOINS voor uitgevonden om de data te koppelen. Evt, als je alles van 1 categorie wilt hebben, kan je de WHERE clausule gebruiken.
De categorien moeten dus niet voorkomen in de rij, het is echt slechts om de grote hoeveelheid informatie in 10 stukken te delen.
:?:? Je hebt 1 tabel, daar donder je alles in. En pas bij het ophalen haal je bepaalde gegevens op.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Om de grote van een Access database te voorkomen zit een optie 'Compact and repair database' in Microsoft Access. Dit scheelt echt heel veel voor de grootte van de database. Hiermee kun je de database wel tot 75% kleiner maken! :)

Verder is de keuze van het type database heel erg afhankelijk van een aantal zaken. Als de kostprijs erg belangrijk is moet je denk ik MySQL nemen. Volgens mij is deze geheel gratis, maar ik ik ben hier niet echt mee thuis. Het grote voordeel van een Access database is dat je hem op praktisch elke computer kunt veranderen. Ga maar eens na waar allemaal Microsoft Office is geïnstalleerd! MSSQL levert een hoge performance en is zeer betrouwbaar (mits je alle security patches netjes installeert), maar is weer erg duur..

Denk eraan dat je de gegevens uit de grote tabellen gaat normaliseren. Voor het geval je niet weet wat dat inhoud: Je gaat 'kleurogen' definieëren met een integer. Dus 1, 2, 3... etc. Vervolgens ga je in een andere tabel de inhoud van de definities opgeven. Dus 1 = blauw, 2 = lichtblauw, 3 = bruin etc... Hiervoor zijn de QUERY's uitgevonden (d.m.v. de JOIN statement dacht ik) zodat je in je pagina maar 1 query hoeft aan te spreken, de database engine switch zelf tussen de verschillende tabellen op een zeer efficiente manier.

Ik denk dat je er wel uit komt ;) ik hoop dat ik alles goed heb gezegd, ik ben zelf ook nog aan het leren! :) Succes!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 29 March 2003 @ 14:45:
Denk eraan dat je de gegevens uit de grote tabellen gaat normaliseren. Voor het geval je niet weet wat dat inhoud: Je gaat 'kleurogen' definieëren met een integer. Dus 1, 2, 3... etc. Vervolgens ga je in een andere tabel de inhoud van de definities opgeven. Dus 1 = blauw, 2 = lichtblauw, 3 = bruin etc... Hiervoor zijn de QUERY's uitgevonden (d.m.v. de JOIN statement dacht ik) zodat je in je pagina maar 1 query hoeft aan te spreken, de database engine switch zelf tussen de verschillende tabellen op een zeer efficiente manier.
Dat kleurogen weet ik niet; iedereen omschrijft zijn ogen namelijk anders.. Puur technisch gezien heb je gelijk, alleen praktisch denk ik dat het voordelen heeft als je mensen zelf hun ogen kan laten omschrijven.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

gorgi_19 schreef op 29 March 2003 @ 14:47:
[...]

Dat kleurogen weet ik niet; iedereen omschrijft zijn ogen namelijk anders.. Puur technisch gezien heb je gelijk, alleen praktisch denk ik dat het voordelen heeft als je mensen zelf hun ogen kan laten omschrijven.
Ik snap je point, maar de 'lookup table' kan simpel uitgebreid worden. Mensen kunnen kiezen uit een kleur, als eventueel die kleur er niet bij staat, dan kun je zelf een kleur opgeven die vervolgens wordt opgeslagen in de 'lookup table' :)

edit:
Als er bijvoorbeeld 1000 rijen in de database staan, waarvan 600 rijen de waarde 'Blauw' of 'blauw' hebben, dan is dit een beetje zonde voor zowel de tijd die de server nodig heeft met parsen, als de grootte van de database.

[ Voor 24% gewijzigd door Verwijderd op 29-03-2003 14:52 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 29 March 2003 @ 14:49:
[...]


Ik snap je point, maar de 'lookup table' kan simpel uitgebreid worden. Mensen kunnen kiezen uit een kleur, als eventueel die kleur er niet bij staat, dan kun je zelf een kleur opgeven die vervolgens wordt opgeslagen in de 'lookup table' :)
Dat zelf laten opslaan is wel heel gevaarlijk, in dit geval.. Zeker ook omdat het niet usergebonden is; een kleur ogen is voor iedereen zichtbaar. En ik geloof niet in de goedheid van de mens, wdb.. :+

(Simpel gezegd: Mensen kunnen een hoop crap posten, welke dan voor iedereen zichtbaar is)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ok, ben weer een stukkie verder.

Mijn website heeft niet meer dan 500 bezoekers per dag. Dus een Acces database zal wel lukken.

Zoals ik al aangaf was hetgeen wat ik gaf een stom voorbeeld. De categorien zijn echter noodzakelijk. Ook de kleurogen etc was gewoon een stom voorbeeld :)
Dus, als je er een tabel van gaat maken:
tabel persoon
PersoonID int auto-increment
Naam varchar
Leeftijd gebdatum datetime
kleurogen varchar
email varchar
website varchar
Dit ben ik nog niet ergens tegen gekomen. De tabel koppeling snap ik, maar wat is dit: PersoonID int auto-increment?
Daar hebben ze JOINS voor uitgevonden om de data te koppelen. Evt, als je alles van 1 categorie wilt hebben, kan je de WHERE clausule gebruiken.
Ok, kun je me aangeven hoe dit precies werkt?
Wat ik dus het beste kan doen volgens mij is dit:

1 tabel maken met de 6 benodigde velden + 1 veld waarbij er steeds keuze is uit 1 van de 10 categorien.

Vragen:
- hoe maak ik dit laatste veld? Bijv 1e categorie heet: voetbal, 2e tennis, etc.
- hoe roep ik elke categorie afzonder op? Dus hoe roep ik de categorie voetbal exact op? Alle rijen moeten dan dus op de pagina voetbal.asp waarbij in de module in het veld 'categorie' voetbal staat.

Alweer alvast bedankt :)


Edit: Comprimeren gelukt, nu slechts 120 kB! Thanks!

[ Voor 3% gewijzigd door Verwijderd op 29-03-2003 15:12 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik gebruik zelf altijd graag MSDE. Dat is de SQL engine van SQL server van MS, maar dan gratis. Je kunt dan ook TSQL gebruiken en stored procedures... Je moet dan (officeel) wel een van de volgende producten bezitten (bron):
Q: Can I use MSDE as database for Web applications?

A: MSDE is an ideal solution for low-end Web applications. The following products and services enable you to redistribute MSDE as a database server for Web applications:

ASP.NET Web Matrix*
MSDN Universal, Enterprise, and Professional subscriptions
Office XP Developer Edition
SQL Server 2000 Developer, Standard, and Enterprise Editions
Visual Studio .NET Architect, Developer, and Professional Editions
Visual FoxPro 7.0 or 8.0
* When obtained by downloading ASP.NET Web Matrix, MSDE is provided only for use in conjunction with an application developed by using ASP.NET Web Matrix.
Meer over MSDE vind je op de site van MS. Eén van de grote voordelen vind ik dat je (mocht je site uit de hand lopen) makkelijk naar de "Grote SQL Server" kunt verhuizen (desnoods naar geclusterde servers ;) )...

En wat betreft je vragen in bovenstaande post zou ik zeggen: Lees eens een goed SQL boek of een ander boek over databases. Je hebt nog een hoop te leren vrees ik ;)

/edit/
Overigens bevat MSDE geen client-admin tools, maar je kunt met Access ermee "connecten" en op die manier je database bij elkaar "sleuren en pleuren" :)

[ Voor 23% gewijzigd door RobIII op 29-03-2003 15:24 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1