Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619

    [MySQL] Opinione su relazione tabelle

    Ciao,
    vorrei avere delle opinioni sulla relazione fra le tabelle che vedete qui sotto:


    La tabella tbl_groups_content serve solo ad avere il nome e una descrizione tradotte in lingua dei gruppi presenti nella tabella tbl_groups.

    Mi è venuto in mente che potrebbe essere meglio togliere idGroupContent da tbl_groups_content (è la chiave primaria della tabella) e settare come chiave primaria fkGroup + fkLang.

    Qualcuno sa trovare un motivo per tenere idGroupContent?
    Se fosse meglio toglierla settereste fkGroup + fkLang come chiava primaria o unique? Perchè?

    Grazie

  2. #2
    allora, la domanda che devi farti è: "Com'è la multiplicità della relazione?" cioè come sono le relazioni tra di loro: un gruppo può avere più content o solo uno? Rispondi a questa domanda e posso darti una risposta.

    P.S. che senso ha chiamare una tabella tbl_qualcosa? Lo sai che sono tabelle....

  3. #3
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Un gruppo può avere piu di un content per esempio, il gruppo idGroup 1 avrà nella tabella tbl_groups_content dei record correlati con queste informazioni:
    fkGroup = 1, name = administrators, fkLang = en
    fkGroup = 1, name = amministratori, fkLang = it
    etc..

    Per quanto riguarda il "tbl_" come prefisso mi aiuta nelle query a distinguere a colpo d'occhio tabelle da campi e magari mi semplifica la vita se qualche volta importo nello stesso db tabelle da prodotti opensource che non permettono di settare il prefisso durante l'installazione, evito per esempio che la procedura si pianti perchè ci sono 2 tabelle che si chiamano users.
    E' comunque questione di gusti personali.

    Grazie dell'interessamento, aspetto l'illuminazione

  4. #4
    beh, penso di si, anche perché come PK l'idGroupContent non ti serve a niente... non so, però, come si potrebbe impostare il contraint sui due campi in modo che la tupla non si ripeta (se lo sai ti prego di dirmelo ;-) ).
    Un ultima cosa: hai un UNIQUE sul name del groups_content? Se, si, usa quello come PK.

  5. #5
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Attualmente non ho uno unique sul name, vorrei appunto mettere uno unique alla coppia fkGroup e fkLamg, avere uno unique sul nome mi limiterebbe un po' troppo (non ho spiegato bene il progetto quindi è facile non capire perchè)

  6. #6
    beh, io non so se si può fare un constrain di questo tipo... se lo fai dal punto di vista del codice, potrebbe andare bene, ma un indice alla tabella è sempre meglio darglielo.

  7. #7
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    E' proprio qui che volevo arrivare.
    Perchè è sempre meglio metterlo?
    Anche unique è comunque un indice.

  8. #8
    certo, per indice intendo UNIQUE, PK, o anche solo INDEX. Serve al DB per le interrogazioni e per gestire le righe

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.