Meddelande

Minska
No announcement yet.

Kategori, etikett eller tag?

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Kategori, etikett eller tag?

    Hej

    Jag håller på och leker med en php/mysql lösning för recept. Jag utgår ifrån en Acceslösning som jag gjorde för 100 år sedan.
    Jag vill kunna kategorisera mina recept utifrån allt möjligt, ex Middag, Vegetariskt, Bröd, Dessert, Glutenfritt, Snabblagat.

    Tidigare så var lösningen så här tblReceptHuvud -1:N - tblRcptKategori - N:1 - tblKategori.

    Finns det något bättre/snabbare sätt att göra det på?
    Typ lagra alla kategorier som en sträng "Middag; Vegetariskt;..."

    Tack på förhand!
    Med vänlig hälsning

    Clownen

  • #2
    Den lösning du har sedan tidigare är den rätta vägen att gå.

    Jämför diskussionen i den här gamla tråden, där det står en hel del om varför detta vida överträffar stränglösningen.

    http://www.webforum.nu/forum/utveckl...76#post2318876
    Härifrån och neråt.

    Kommentera


    • #3
      Intressant tråd.
      Det jag tänkte var att kategorierna i mitt fall endast är kopplat till en textsträng, dvs inga främmande nycklar eller dyl.
      Teorin var att det då skulle vara snabbare att lagra alla etiketter/taggar i en sträng men å andra sidan att göra en sökning på dessa skulle nog förbruka en hel del prestanda kontra ett index.
      Med vänlig hälsning

      Clownen

      Kommentera


      • #4
        Jester73 skrev: Visa inlägg
        Intressant tråd.
        Det jag tänkte var att kategorierna i mitt fall endast är kopplat till en textsträng, dvs inga främmande nycklar eller dyl.
        Teorin var att det då skulle vara snabbare att lagra alla etiketter/taggar i en sträng men å andra sidan att göra en sökning på dessa skulle nog förbruka en hel del prestanda kontra ett index.
        Jag tror knappast att lagringen går fortare heller.

        Så länge du lägger till nya kategorier, används strängkonkatinering i en UPDATE : Hitta rätt rad, strängkonkatinera. Att det skulle gå fortare än en INSERT i en tabell med vettiga nycklar är osannolikt.

        Om du stavar fel i din sträng och behöver ändra den, eller vill byta namn på en kategori av något annat skäl, måste du uppdatera alla rader där den förekommer, vilket också kräver strängjämförelser.

        Om du vill ta bort en kategori för ett visst recept, så blir det också en UPDATE följt av stränghantering.

        Om du istället har en tabell för dina kategorier och en kopplingstabell mot recepten, så blir allting enklare för databasen. Och för dig också, faktiskt: Om du vill ändra en kategori görs det på ett ställe, oavsett hur många recept som ligger i den. Alla recept har exakt samma kategorinamn, dvs inget enskilt recept har en felstavad kategori.

        Kommentera

        Working...
        X