Database structuur video site

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Raoul -

- Raoul -

19/08/2013 17:33:15
Quote Anchor link
Hoi allemaal,

Ik heb laatst een videosite gebouwd waar allemaal episodes van een serie opkomen.

Dit is m'n huidige database structuur:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
---> users
id: INT, AUTO_INCR
username: VARCHAR 25
password: TEXT
email: VARCHAR 100

---> seasons

id: INT, AUTO_INCR

---> episodes

id: INT, AUTO_INCR
seasonId: INT
title: VARCHAR 100
description: VARCHAR 500
videoSource: TEXT

---> episode_comments

id: INT, AUTO_INCR
episodeId: INT
userId: INT
ip: VARCHAR 50
comment: VARCHAR 500


Zijn er enige verbeteringen hieraan? Er is geen aparte video's table omdat ik alle filmpjes embed vanuit een andere site, vandaar de "videoSource", die verwijst naar de embed-URL.

- Raoul
Gewijzigd op 19/08/2013 17:33:54 door - Raoul -
 
PHP hulp

PHP hulp

17/11/2024 15:42:39
 
Jeroen VD

Jeroen VD

19/08/2013 17:39:49
Quote Anchor link
Ja die seasons tabel kan er helemaal uit, totaal nutteloos
 
Chris PHP

Chris PHP

19/08/2013 17:43:05
Quote Anchor link
@Jeroen,
Ja zoiets had ik idd ook, hoe weet je nu welk seizoen van welke serie is?
Dan zou ik er zoiets van maken.

---> seasons

id: INT, AUTO_INCR
serieName: VARCHAR (100)
seasonName: VARCHAR (100)
numberOfEpisodes: INT

Aan alleen een int heb je niet veel lijkt me.

En waarom is je password TEXT? Sla je die in plain text op?
Gewijzigd op 19/08/2013 17:47:16 door Chris PHP
 
- Raoul -

- Raoul -

19/08/2013 17:46:59
Quote Anchor link
Dat klopt, beetje een mislukte poging van me om de db een beetje relationeel te maken. Maar is het OK om een serieName te gebruiken als ik maar 1 serie heb?

@Chris

Ik denk dat numberOfEpisodes ook een beetje nutteloos is, aangezien ik die ook vanuit de episodes tabel kan ophalen. Bovendien heeft de serie die ik op de site zet geen namen voor hun seizoenen.

// Ik denk dat ik toch de serieName erbij ga doen, maakt het wat flexibeler.
Gewijzigd op 19/08/2013 17:47:59 door - Raoul -
 
Chris PHP

Chris PHP

19/08/2013 17:50:25
Quote Anchor link
@Raoul,

Tja ik kan niet weten dat je er maar 1 serie op hebt staan, ik ging ervanuit dat je meerdere series zou hebben. Ja je episode nummer kun je 'berekenen' door deze telkens te tellen, maar waarom niet gewoon een +1 in een veld wanneer je een nieuwe toevoegd? Is minder belastend dan er telkens een apparte berekening voor te maken.

En waarom is je password TEXT? Sla je die in plain text op?
 
- Raoul -

- Raoul -

19/08/2013 17:53:53
Quote Anchor link
@Chris

Nee, ik hash en salt ze natuurlijk. Ik ben altijd bang dat met varchar een deel van het gehashte wachtwoord gaat wegvallen dus ik doe het gewoon met text.
 
Jeroen VD

Jeroen VD

19/08/2013 18:37:51
Quote Anchor link
nee die hele seasons tabels weglaten, en in je episode tabel een kolom met season. je kunt dan het hele seizoen selecteren met WHERE season = 1. ofzo. en door die op de id oplopend te sorteren, kun je gewoon met een loopje in php een nummer eraan koppelen in de episode.
 
Chris PHP

Chris PHP

21/08/2013 12:26:08
Quote Anchor link
@Jeroen,

Dit werkt natuurlijk alleen in de huidige situatie waar het maar 1 serie betreft. Wanneer de site uitgebreid gaat worden en er meerdere series komen, is z'n tabel wel degelijk aan te raden.

@Raoul,

VARCHAR is stukken sneller en efficienter dan TEXT, ik zelf gebruik zoveel mogelijk VARCHAR(xxx) om het geheugen zo vrij mogelijk te houden. Mijn wachtwoord veld (sha256 + salt) staat op VARCHAR (80) aangezien deze nooit boven de 80 karakters zal komen. Dit zorgt ervoord dat mijn VARCHAR(80) minder ruimte in beslag neemt dan jou TEXT.

Ik probeer altijd zo efficient mogelijk te schrijven, dus houdt ik altijd rekening met het maximaal verwachte aantal karakters. Zo minimaliseer je overgebruik van je geheugen op de server.
 



Overzicht Reageren

 
 

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.