[SQL] Database voor Pricewatch ontwerp vraag

Pagina: 1
Acties:

  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 22-05 01:22
Ik wil voor mijn site een pricewatch (ala die van tweakers maar dan voor andere producten dan computerstuff) beginnen alleen zit nog even met de opbouw van de database.

Ik heb nog niet veel ervaring met sql maar zat te denken aan dit:

Produkt (tabel)

produktID
produktNaam
produktCategorie
produktSubcategorie
produktURL
produktMerk
produktInfo

Winkel (tabel)

winkelID
winkelNaam
winkelLand
winkelURL
winkelPlaats
winkelPostcode
winkelTelefoon
winkelEmail
winkelVerzendkosten

Prijs (koppeltabel)

ID
produktID
winkelID
prijs
datum
url

Is dit een goede opzet?

[ Voor 8% gewijzigd door Hertog_Martin op 28-01-2004 01:01 ]


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 04:03
Product spel je met een c (we leven niet meer in de jaren 70!) ;).

Verder lijkt me dat je van een winkel ook een adres en misschien een telefaxnummer wilt opslaan. De relaties tussen de tabellen lijken me in orde, behalve dat als je maar één prijs per combinatie van winkel en product op wilt slaan, je de prijs tabel geen apart id veld hoeft te geven. De combinatie van de id's van winkel en product zijn dan de gecombineerde primary key ('id') van de prijstabel.

Eventueel zou je je categoriesysteem wat flexibeler kunnen maken, zo dat elk product in precies één categorie past, maar categoriën wel genest kunnen worden, maar dat is al meer dan de tweakers.net pricewatch mogelijk maakt. De toegevoegde waarde is ook twijfelachtig (hangt een beetje van de beschikbare categoriën af en de mate waarin producten correct in te delen zijn).

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Een produkt kan in meerdere categorieen horen.
Je hebt geen categorie tabel.
Een winkel kan meerdere adressen hebben.
Sommige winkels hebben een fax.
URL in de prijs koppeltabel?

Ik zou zeggen probeer eens de brain-mapping methode en ga dan eens normalizeren, laat daarna eens aan ons zien wat je hebt bedacht.

Ik zou in iedergeval, als ik jou was, met het huidige database model er niet aan beginnen

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 22-05 01:22
Categorie (tabel)

categorieID
categorieNaam

Subcategorie (tabel)

subcategorieID
subcategorieNaam

Product (tabel)

productID
productNaam
productURL
productMerk
productInfo

Winkel (tabel)

winkelID
winkelNaam
winkelLand
winkelURL
winkelPlaats
winkelPostcode
winkelTelefoon
winkelFax
winkelEmail
winkelVerzendkosten
winkelOpeningstijden

Categorie_Product_Winkel (koppeltabel)

categorieID
subcategorieID
productID
winkelID
prijs
datum
url

Weet niet of het nu wel klopt met de categorieen.

De url bij Prijs is een directe link naar het product op de site van de winkel.
Dat een winkel meerdere adressen (meerdere vestigingen) kan hebben los ik denk ik gewoon op door de vestiging achter de winkelnaam te doen.

VideoShop Amsterdam
VideoShop Haarlem

Voor een reaktiesysteem op winkels had ik volgende in gedachten:
sectie maken op mn phpbb forum waar geregistreerde users een topic met de winkelnaam kunnen starten en daarbij een poll starten waar iedereen dus cijfer kan geven en reageren

Reaktiesysteem op tweakers is niet echt mogelijk voor beginner als mij.

[ Voor 125% gewijzigd door Hertog_Martin op 28-01-2004 14:23 ]


  • MP83
  • Registratie: Januari 2000
  • Laatst online: 31-01 18:11
Met bovenstaande layout kun je maximaal één subcategorie diep gaan.

Wat mooier is, is om met een extra kolom, bijvoorbeeld 'parent_id', aan te geven tot welke categorie een subcategorie eventueel behoort. :)

Zo kun je theoretisch gezien oneindig veel subcategorieen nesten :Y)

Verwijderd

Misschien is het mogelijk om een van de categorie en subcategorie tabel, een enkele tabel te maken met daarin een parentcategorie_id. Zo kun je binnen een (sub)categorie ook weer (sub)categorieen aanmaken zonder daar later je datastructuur voor te veranderen + je hebt maar 1 tabel.

telaat...gvd

[ Voor 3% gewijzigd door Verwijderd op 28-01-2004 14:14 . Reden: te laat gvd ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-05 00:01

Janoz

Moderator Devschuur®

!litemod

Wordt de subcategorie door het product of door de (hoofd)categorie bepaald? En als je een product bij een andere winkel koopt, zit het dan ineens in een andere categorie?

De oplossing voor meerdere vestigingen die je voorsteld slaat verder trouwens nergens op. Maak er gewoon een 1:N relatie van en stop vestigings specifieke dingen in de vestiging tabel.

Je moet er goed op letten dat dit het moment is waarop alles wordt bepaald. Nu al met noodoplossingen gaan smijten lijkt nu handig, maar wordt een molensteen om je nek waneer dit later nog aangepast moet worden.

[ Voor 11% gewijzigd door Janoz op 28-01-2004 14:16 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Je zet in je product nu zowel een categorie als een subcategorie. Dat is niet logisch. Een subcategorie is in feite een categorie binnen een categorie. Het mooiste is dus om die Categorie zo op te zetten:

Categorie
=======
ID
ParentID
Name

en in je Product alleen te verwijzen naar een Categorie (of als je wil dat een product in meer dan één categorie kan vallen, via een derde tabel te werken voor een many-to-many relatie).

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant


  • Hertog_Martin
  • Registratie: Juli 2002
  • Laatst online: 22-05 01:22
Projector (tabel)

projectorID
projectorNaam
projectorURL
projectorMerk
projectorResolutie
projectorContrast
projectorLumens
projectorTechniek
projectorGewicht
projectorGeluid
projectorHerrie
projectorAfmetingen
projectorJaar
projectorOntvangst
projectorThrow
projectorBeeldgrootte
projectorFoto

DVDspeler (tabel)

dvdspelerID
dvdspelerNaam
dvdspeler.. etc etc

Speakers (tabel)

speakersID
speakersNaam
speakers.. etc etc

Winkel (tabel)

winkelID
winkelNaam
winkelLand
winkelURL
winkelPlaats
winkelPostcode
winkelTelefoon
winkelFax
winkelEmail
winkelVerzendkosten
winkelOpeningstijden
winkelBanner

Projector_Winkel (koppeltabel)

projectorID
winkelID
prijs
datum
url

DVDspeler_Winkel (koppeltabel)
dvdspelerID
winkelID
prijs
datum
url

Speakers_Winkel (koppeltabel)
speakersID
winkelID
prijs
datum
url

Ik wil dus eigenlijk ook van elk soort produkt veel informatie invoeren. Bij projectors/televisies de resolutie en contrast enzo.

Is dit wel een goede manier daarvoor of maak ik er nu echt een zooitje van?

Verwijderd

tipje:

Maak een catagorie tabel en geen subcatagorie tabel, op die manier kun je namelijk eindeloos subcatagorien maken.

Catagorie
Id
ParentCatagorieId (ofziets, je snapt het idee)
Naam


AAGR, dat hebben al veel meer mensen bedacht in dit topic |:( Ik ben al de 4e :+

[ Voor 20% gewijzigd door Verwijderd op 28-01-2004 18:57 ]


  • Guldan
  • Registratie: Juli 2002
  • Laatst online: 24-05 23:58

Guldan

Thee-Nerd

Kun je niet beter voor de info gewoon een veld "info" maken en dan hier TEXT van maken in mysql.Dan hoef je niet alles te doen maar dan kun je gewoon een verhaaltje bedenken.inplaats van steeds alles in te vullen.

verder zou ik het reply systeem zo maken:

Topics
==========
topicid
topicposter
inhoud
------------------

Replys
==========
replyid
topicid
replyposter
------------------

en dan aan de hand van die topic id de replys selecteren.

[ Voor 7% gewijzigd door Guldan op 28-01-2004 20:31 ]

You know, I used to think it was awful that life was so unfair. Then I thought, wouldn't it be much worse if life were fair, and all the terrible things that happen to us come because we actually deserve them?

Pagina: 1