webForumDet fria alternativet

Begränsa varje användare till specifika områden

Databaser & SQL

2 svar · 438 visningar · startad av Syd

Medlem sedan feb. 2004489 inlägg
Frågan#1

Har börjat komma igång med en egen webbkatalogen nu, och har tänkt ha en MySQL databas i grunden. Men när jag börjat skissa på innehållet och tabellerna utifrån jobbeskrivningen så har en liten fundering uppstått. Det ska nämligen vara upplagt så att varje kund har tillgång till vissa specifika prislistor, såväl som vissa allmänna.

Förutsättningarna är:

  • En grupp kunder, säg 100st, som administratören skapar användare åt.
  • En viss mängd kategorier och underkategorier
  • En viss mängd produktsidor

Hitintills har jag tänkt mig att kunder får ett unikt ID och namn, och sedan får man bestämma vid varje kategori vilka kunder som får tillgång till just den här kategorin. Antagligen genom att bocka i namnen i en lista av något slag.
Här uppstår frågetecknen.

Är kategorinivån det logiska stället att göra begränsningen på?
I mitt huvud - som inte är det bästa huvudet när det kommer till databaser - behövs det alltså minst hundra stycken sant/falskt kolumner. En för varje kund. Vid inloggning tittas vilka kategorier kunden ska ha tillgång till, och resterande områden filtreras bort. Eller är det smidigare att sätta in den här begränsningen i kundprofilen?
Här känns det som att antagligen går att lösa på ett mycket bättre sätt. Eller är jag rentav på helt fel spår?
Men jag har kört fast i mitt tänkande. Tips och förslag, någon?

Medlem sedan dec. 20025 483 inlägg
#2

Upprätta en tabell som mappar kunder mot kategorier:

---------------------------
| CustomerId | CategoryId |
---------------------------
|     1      |      1     |
---------------------------
|     1      |      5     |
---------------------------
|     1      |      6     |
---------------------------
|     4      |     18     |
---------------------------

Sedan hämtar du ut alla kategorier utifrån kundid:t.

Medlem sedan feb. 2004489 inlägg
#3

Det blev finfint. Tackar för tankehjälpen!

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)