Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] Foto's met optionele extra informatie in een database

Pagina: 1
Acties:

  • SimonBlok
  • Registratie: Maart 2006
  • Laatst online: 21-11 21:05
Ik zit hier met een structuur vraagstuk.

Ik heb een map met afbeeldingen, deze afbeeldingen kunnen stuk voor stuk extra informatie hebben. Dit kan gaan om een naam, categorie, of andere eigenschappen. Deze informatie wil ik, in dit geval, in een database opslaan.

Ik werk met een MVC-framework (Laravel). Nu kan ik een model aanmaken met hierin alle informatie. Maar we hebben eigenlijk twee soorten informatie, namelijk die van de file en de (optionele) informatie uit de database. Hoe zouden jullie dit aanpakken? Ik heb verschillende mogelijkheden.

1. één model die ik instantieër aan de hand van de bestandsnaam. In dit model zit alle informatie. Sommige eigenschappen zijn niet gevuld omdat de file simpelweg niet in de database voorkomt, maar het bestand bestaat wel.
2. Twee klasses, één voor het bestand zelf en één voor de extra informatie, het object wat de databaseinformatie bevat is dat een eigenschap van de file-klasse.
3. Twee klasses, één voor het bestand zelf en één voor de extra informatie. Het object wat de databaseinformatie bevat overerft de bestand-klasse.

Wat zouden jullie doen? Ik denk niet dat één van bovenstaande methoden echt fout is, maar ik ben wel eens benieuwd wat jullie denken.

Verwijderd

Kan een afbeelding bestaan zonder die info? Kan de info bestaan zonder de afbeelding? (bv voor een ander type bestand)

--> is het antwoord op allebei "nee" dan zou ik optie 1 kiezen.

  • SimonBlok
  • Registratie: Maart 2006
  • Laatst online: 21-11 21:05
Een afbeelding kan zeker wel bestaan zonder de informatie uit de database. Soms is er extra informatie beschikbaar en soms niet.

  • Tarilo
  • Registratie: December 2007
  • Laatst online: 18-11 15:02
Ik zou optie 3 gebruiken. Immers is een bestand met database informatie gewoon een specifieker type van een normaal bestand. Daarnaast heb je met overerving het voordeel dat je code voor de basis klasse kunt hergebruiken.

  • mathiasv91
  • Registratie: Februari 2012
  • Laatst online: 17-03-2023

mathiasv91

Trotse Vlaming

Hierin ga ik akkoord met Tarilo. Code hergebruiken is soms heel gemakkelijk in je workflow.

Killboard--Eve-Board


  • Turani
  • Registratie: Oktober 2011
  • Laatst online: 07-11 12:14
ervan uit gaande dat je alleen informatie bewaart in je "nieuwe" klasse zou ik voor optie 2 gaan en dus eerst aggregeren voordat ik overerf...

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 22-11 19:09
Je view models moeten gewoon lekker simpel zijn. Maak gewoon 1 class en hou de waarden op NULL als er geen info in de database staat. Je view zal het aan zijn reet roesten waar de data vandaan komt, die wil gewoon weten: is er een beschrijving of niet.

  • IceM
  • Registratie: Juni 2003
  • Laatst online: 06:45
Het lijkt erop alsof je een bestand hebt die optioneel metadata heeft? Dan zou ik het ook zo modeleren, een File die 0 of 1 MetaData object(en) heeft.

...


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
IceM schreef op donderdag 24 januari 2013 @ 20:43:
Het lijkt erop alsof je een bestand hebt die optioneel metadata heeft? Dan zou ik het ook zo modeleren, een File die 0 of 1 MetaData object(en) heeft.
Afhankelijk van het type metadata zou ik het eerder 0..n doen met een key-value store voor de metadata.

Metadata als iptc / exif is zo ongeveer 100% optioneel en bevat custom uitbreidingen, dat modelleert zeg maar niet echt lekker naar 1 model...

  • IceM
  • Registratie: Juni 2003
  • Laatst online: 06:45
Gomez12 schreef op donderdag 24 januari 2013 @ 21:12:
[...]

Afhankelijk van het type metadata zou ik het eerder 0..n doen met een key-value store voor de metadata.

Metadata als iptc / exif is zo ongeveer 100% optioneel en bevat custom uitbreidingen, dat modelleert zeg maar niet echt lekker naar 1 model...
Metadata is natuurlijk een veel breder begrip als alleen de exif of iptc die je in een afbeelding zou kunnen vinden. Een naam of omschrijving is ook gewoon metadata, en ik heb het idee dat het bij de TS om dat soort informatie gaat.

...

Pagina: 1