Meddelande

Minska
No announcement yet.

Struktur på databas där en post har relation till flera poster i annan tabell..

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

  • Struktur på databas där en post har relation till flera poster i annan tabell..

    Försökte skriva en komplett rubrik men vet inte om den blev så tydlig..

    Jag planera en databas där jag har en tabell som vi kan kalla kategorier med följande kolumner.

    tbl_kategorier
    id--namn

    och en tabell som heter artikel med följande kolumner

    tbl_artiklar
    id--kategoriId--artikelnamn


    Nu är ju frågan hur jag ska få ihop min relation här. Hela problemet för mig är att en artikel kan vara medlem i flera kategorier. Så på ett smart och effektivt sätt måste jag kunna ange för varje artikel vilka kategorier den hör till. Vet inte riktigt hur jag ska göra detta?
    Ska man i kolumnen kategoriID ange flera id och sen i varje frågesats på något vänster kontrollera kolumnen för vilka id'n den är medlem av, känns lite fel?

    Uppskattar förslag och idéer..

    Mvh
    "An nescis, mi fili, quantilla prudentia mundus regatur?"

  • #2
    Du skapar en till tabell som kopplar ihop artikel med kategori!

    Sent from my Galaxy Nexus using Tapatalk 2
    Kodfabriken - Webb- & apputveckling

    Kommentera


    • #3
      typ en tabell med fälten artikelID och kategoriId och sen en post för varje koppling då?
      "An nescis, mi fili, quantilla prudentia mundus regatur?"

      Kommentera


      • #4
        Ja
        "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

        Kommentera


        • #5
          Förslag:

          [item]
          intID -- räknare
          strName

          [category]
          intID -- räknare
          strName

          [productConnection] -- eller vad som nu kan passa
          intID
          intItemID
          intCategoryID


          ***
          En produkt kan tillhöra samtliga kategorier, ingen begränsning.
          - Vad hette La Liga då det begav sig?
          - Då Liga.

          Kommentera


          • #6
            civilpolisen skrev: Visa inlägg
            Förslag:

            [item]
            intID -- räknare
            strName

            [category]
            intID -- räknare
            strName

            [productConnection] -- eller vad som nu kan passa
            intID
            intItemID
            intCategoryID


            ***
            En produkt kan tillhöra samtliga kategorier, ingen begränsning.
            Jag håller med minus notationerna

            Article
            - Id
            - Name
            - ....

            Category
            - Id
            - Name

            ArticleCategoryIndex
            - Id
            - CategoryId
            - ArticleId

            Kommentera


            • #7
              Nej, jag vet, dom är inte så populära.
              Haken är att dom funkar. Det är ytterst sällan som dom har missuppfattats, även om det säkert har skett.

              Dessutom, det går att använda samma namn på formuläret eller drop-down listen i HTML dokumentet som i databasen. Det gör det med dina också, så där är det ingen skillnad.

              Det är bra om det är så lite namn som möjligt att hålla ordning på. Det underlättar själva kodandet. Man behöver inte vara kreativ på just den punkten! Bättre då att lägga krutet på andra saker! :-)
              - Vad hette La Liga då det begav sig?
              - Då Liga.

              Kommentera


              • #8
                civilpolisen skrev: Visa inlägg
                Nej, jag vet, dom är inte så populära.
                Haken är att dom funkar. Det är ytterst sällan som dom har missuppfattats, även om det säkert har skett.

                Dessutom, det går att använda samma namn på formuläret eller drop-down listen i HTML dokumentet som i databasen. Det gör det med dina också, så där är det ingen skillnad.

                Det är bra om det är så lite namn som möjligt att hålla ordning på. Det underlättar själva kodandet. Man behöver inte vara kreativ på just den punkten! Bättre då att lägga krutet på andra saker! :-)
                Notationer är oftast onödig information, ju mindre du har desto bättre.
                Man tar ögonen ifrån det viktiga t.ex. intAge det är inte int som är viktigt utan Age som är viktigt.
                Less is more .

                int, str, obj osv osv är en gammal kvarleva från när vi inte hade intellisense i våra system, och även då så kan man fortfarande få namnen på variablerna/kolumnerna göra det enkelt att förstå vad det är för typ.

                I koden är det samma sak undvik str, int, obj, frm, btn, txt osv osv
                Om man behöver bemärka att det är ett form eller button så går det bra med
                SaveButton, PersonForm mycket tydligare och snyggare.

                Kommentera


                • #9
                  Bör det inte finnas en datum limit när de skall gälle, själva kopplingen alltså!
                  Livet är kort och Nu!
                  Läs mera!
                  !?

                  Kommentera


                  • #10
                    Lasp skrev: Visa inlägg
                    Bör det inte finnas en datum limit när de skall gälle, själva kopplingen alltså!
                    ???


                    Notationer är oftast onödig information, ju mindre du har desto bättre.
                    Man tar ögonen ifrån det viktiga t.ex. intAge det är inte int som är viktigt utan Age som är viktigt.
                    Less is more.
                    Jag tycker detta är jättekonstigt! Jag håller i sak med dig om att "less is more". Men jag ser det åt andra hållet.

                    På en kontaktsajt som jag har har jag faktiskt skrivit strAge av den anledningen att inte begränsa folk att dom ska skriva bara siffror. Dom kan skriva lite vad som helst. Efter 10 år kan jag konstatera att det gör dom också...

                    Det är ju rätt tydligt att det är ett textfält. Sånt har faktiskt betydelse, som bekant. Hade det bara stått Age, som du förespråkar, går en del av dokumentationen förlorad, även om tre bokstäver för all del är mindre än sex...!

                    ***
                    Ja... Jag ser faktiskt ingen poäng i att avstå att att vara tydlig.

                    Samtidigt är jag helt införstådd med att jag är rätt ensam om denna sunkna kvarleva från en tid som aldrig kommer åter... Så jag gör inga anspråk på att vara evangelist!!

                    Happy hacking!! :-)
                    - Vad hette La Liga då det begav sig?
                    - Då Liga.

                    Kommentera


                    • #11
                      Det är ju rätt tydligt att det är ett textfält. Sånt har faktiskt betydelse, som bekant. Hade det bara stått Age, som du förespråkar, går en del av dokumentationen förlorad, även om tre bokstäver för all del är mindre än sex...!
                      För att dra ut det lite mer OT:

                      Jag ser inte hur detta hjälper... ända fördelen är att du när du öppnar din tabell så få du ett hum om vad det är för datatyp du är ute efter, men om man skriver SQL frågan så måste man alltid hänvisas till tabellstrukturen för om det var IntID eller strId när jag vill bara ville få ut ett ID, det är ju upp till systemet att rätta till användarens misstag, om Age är ett datum så se till att det bli ett datum, om det är ett nummer du skall skriva manuellt, se då till att man bara kan få in nummer.

                      Men som tur är så bestämmer vi alla själva hur vi bygger våra system


                      Lasp skrev: Visa inlägg
                      Bör det inte finnas en datum limit när de skall gälle, själva kopplingen alltså!
                      Beror på om produkten skall bara visas under en begränsad tid gissar jag på?
                      "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

                      Kommentera

                      Working...
                      X