Domanda

Quindi devo tabelle InnoDB (Prodotti) e (Categorie). Ho voluto impostare una relazione tra il campo "Categoria" sulla tabella prodotti, e la "CategoryId" della tabella Categorie.

Ma quando si tenta di creare un FK sarà solo farmi selezionare la chiave primaria "ProductsId" sulla tabella Prodotti e mappa per la PK "CategoryId" sulla tabella Categorie.

Forse mi manca il modo / ragione per impostare una chiave esterna. I miei pensieri e dimmi se sbaglio:

1) è quella di chiedere un prodotto essere aggiunto a una categoria quando ha aggiunto, la categoria deve esiste o è necessario crearlo prima. Non è possibile rimuovere una categoria a meno che non si esegue un compito (programmically o sul backend DB) per rimuovere i prodotti da una categoria che si vogliono rimuovere.

2) Mi aspettavo il valore CategoryId da memorizzare nel campo "Categoria" della tabella prodotti. Poi, quando la visualizzazione a mio avviso, avrebbe bisogno di guardare in alto il campo Categories.Name dal valore CategoriesId.

Modifica Così ho capito che due campi coinvolti nelle chiavi esterne devono essere dello stesso, le dimensioni, i tipi ... ecc. Tuttavia, come fa che collega il lavoro ProductId e CategoryId nel contesto di quello che ho citato sopra Sto volendo fare. Quando ho fatto creare un FK tra ProductId e CategoryId, io non mi permette di aggiungere un record prodotto.

Inoltre, Categoria campo Nome e il campo Categoria prodotto sono dello stesso tipo, size..etc, eppure non ottengono la possibilità di selezionare quelli nella scheda chiave esterna?

Come dovrei configurarlo in modo che la tabella categorie saprà quali prodotti sono parte di ogni categoria.

È stato utile?

Soluzione

Ok, purtroppo, devo rispondere alle mie domande. La ragione per la maggior parte dei miei problemi tecnici è perché il campo che si sta tentando di fare "deve essere indicizzato".

Il problema comprehesive ho avuto è stata che avevo bisogno di sbarazzarsi del campo vero e proprio "Categoria" varchar sulla tabella prodotti, e creare un campo CategoryId che avrebbe solo un valore che esiste nel campo CategoryId Categoria tavolo.

Ora dovrà solo fare riferimento al campo Categories.Name attraverso il valore Products.CategoryId.

Almeno questo è quello che sono venuto a capire.

Altri suggerimenti

Se siete sul banco di lavoro, verificare che i tipi, lunghezze e gli attributi di entrambe le colonne coinvolte nel FK sono gli stessi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top