sql >> Database teknologi >  >> RDS >> Mysql

Databasemodellering:Hvordan kategoriserer man produkter som Amazon?

Selvfølgelig vil det skalere. Det vil fungere fint, det er en almindeligt brugt struktur.

Inkluder et level_no . Det vil hjælpe med koden, men endnu vigtigere, det er påkrævet at udelukke dubletter.

Hvis du vil have en virkelig stram struktur, har du brug for noget som Unix-konceptet med inoder.

Du kan have svært ved at få hovedet omkring den kode, der kræves for at producere hierarkiet, f.eks. fra et product , men det er et særskilt spørgsmål.

Og skift venligst

  • (product_category )) id til product_category_id
  • (product id til product_id
  • parent_id til parent_product_category_id

Svar på kommentarer

  1. level_no . Tag et kig på denne datamodel, den er til en mappetræstruktur (f.eks. FlieManager Explorer-vinduet):

    Directory Data Model

    Se om du kan forstå det, det er Unix inode-konceptet. Filnavnene skal være unikke i noden, derfor det andet indeks. Det er faktisk færdigt, men nogle udviklere vil i disse dage have en hysterisk pasform med at skrive den kode, der kræves for at navigere i hierarkiet, niveauerne. Disse udviklere har brug for et level_no at identificere hvilket niveau i hierarkiet de har med at gøre.

  2. Anbefalede ændringer. Ja, det hedder Good Naming Conventions. Jeg er rigid omkring det, og jeg udgiver det, så det er en navnestandard. Der er grunde til det, som vil blive klart for dig, når du skriver noget SQL med 3 eller 4 niveauer af joinforbindelser; især når du går til samme ene forælder på to forskellige måder. Søger du SO, vil du finde mange spørgsmål til dette; altid det samme svar. Den vil også blive fremhævet i den næste model, jeg skriver til dig.



  1. MySql-feltstørrelse til lagring af e-mail-brødtekst

  2. Hvordan ændrer man tegnkodningen af ​​en postgres-database?

  3. indsæt i vælg på dublet mysql-forespørgsel

  4. Oprettelse af bruger med krypteret adgangskode i PostgreSQL