MySQL data structuur

Status
Niet open voor verdere reacties.

josp16

Gebruiker
Lid geworden
14 jul 2014
Berichten
20
Hoi,

Ik wil data gaan loggen en deze in een MySQL database opslaan. Ik heb al een database aangemaakt en er gegevens in schrijven lukt me ook.

Alleen zou ik mijn data willen ordenen door het in te delen in mappen. Dus een structuur als volgt:

Jaar 2014
________Week 1
______________Dag 1
___________________DATA

Ik vraag me af of dit in MySQL mogelijke is? Of er andere manieren om je data overzichtelijk in te delen?
 
Ik ben heel erg benieuwd hoe jij je database hebt opgebouwd aangezien je het antwoord eigenlijk zelf al geeft.
 
Ik een database aangemaakt met een tabel
Code:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

En daar schrijf ik mijn data in weg, maar nu komt alles in deze tabel. Ik zou het willen dat deze tabel in de map "Dag 1" komt.
Dan kan ik wel voor elke dag een nieuwe tabel maken, maar dit is dan toch niet overzichtelijk? Ik zou de dagen eigenlijk per week willen indelen en de weken per jaar.
 
Laatst bewerkt:
Deze gegevens zijn werkelijk totaal afwijkend van die uit je eerste vraag.

Je zou een tabel data kunnen maken met de velden jaar, week dag en P_Id
Vervolgens kun je selecteren op jaar, week, dag met als resultaat alle P_Id's van die dag. Aan de hand van de P_Id kun je de persoonsgegevens terug vinden.
 
Hoi gast0158,

Bedankt vooor je reactie!
De tabel die ik heb opgegeven komt van een voorbeeld van internet, maar op deze manier heb ik de tabel aangemaakt.
Zoals jij het bedoelt gaat mijn tabel er zo uit zien (ik gebruik even namen die ik ook ga gebruiken):

Code:
CREATE TABLE Data
(
P_Id int NOT NULL,
Jaar CHAR (4),
Week CHAR(2),
Dag CHAR(2),
Temperatuur CHAR(6),
Luchtvochtigheid CHAR(6),
)

Ik denk dat ik het begrijp, ik moet de mappen structuur zoals op een PC niet hier in terug willen zien. Ik moet dus de velden Jaar, week en dag meenemen bij het opslaan van mijn data zodat ik hier op kan zoeken. Dit is dan wel extra dat die ik mee moet nemen.

Ik denk wel dat ik per jaar een nieuwe tabel moet aanmaken, anders wordt de tabel erg groot denk ik met name de waarde P_Id...Althans hij kan 4294967295 groot worden.
Zitten er aan een tabel geen limiten?
 
Laatst bewerkt:
Een tabel kan zonder problemen groeien tot de capaciteit die je nodig hebt. Als je 1000 entries per dag hebt kan je tabel nog miljoenen dagen mee.

Als je altijd gaat zoeken op datum kun je beter geen char velden nemen om de data in op te slaan. Je moet dan namelijk door 2 conversie stappen per onderdeel van je datum. Gebruik gewoon een echt datum veld of sla de informatie in ieder geval op als een nummer.
 
wampier
Een tabel kan zonder problemen groeien tot de capaciteit die je nodig hebt. Als je 1000 entries per dag hebt kan je tabel nog miljoenen dagen mee.

Als je altijd gaat zoeken op datum kun je beter geen char velden nemen om de data in op te slaan. Je moet dan namelijk door 2 conversie stappen per onderdeel van je datum. Gebruik gewoon een echt datum veld of sla de informatie in ieder geval op als een nummer.

Oke, ik kan dus beter gewoon een timestamp pakken? Ik heb de zoekfuncties binnen MySQL nog niet bekeken, maar je kunt dan makkelijk en snel op een dag zoeken? Klopt ik kan denk ik beter voor mijn temperatuur een TINYINT pakken. Bedankt voor de tips!
 
Wanneer je de gegevens per jaar in een tabel wilt zetten (is wel zo bevorderlijk ivm overzichtelijkheid) dan kan je het jaar weglaten uit de datatabel :

Code:
CREATE TABLE Data_2014
(
P_Id int NOT NULL,
Week CHAR(2),
Dag CHAR(2),
Temperatuur CHAR(6),
Luchtvochtigheid CHAR(6),
)

Uiteraard zit er wel een limiet aan maar die ligt behoorlijk hoog, ik kan hem niet uit het hoofd noemen en het is ook afhankelijk van het gebruikte database type.

Ik wil je trouwens adviseren om alles waar je mee wilt rekenen of vergelijken indien mogelijk in een integer of datum te zetten.
Zet je het in varchars dan moeten je strings altijd even lang zijn en altijd van voorloop nullen voorzien worden.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan