Verwendung von Fremdschlüsseln mit PHP

Ich verstehe also, wie man Fremdschlüssel erstellt, und weiß, was der Zweck des FK ist. Aber ich habe ein Problem beim Verstehen, wie man sie benutzt. Ich habe eine Frage zu Fremdschlüsseln gestelltHIER (Link anklicken)

Folgendes habe ich gemacht:

CREATE TABLE user(
  id INT(11) NOT NULL AUTO_INCREMENT,
  username VARCHAR(50) NOT NULL,
  password VARCHAR(20) NOT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE items(
  i_id INT(11) NOT NULL AUTO_INCREMENT,
  name TINYTEXT NOT NULL,
  price DECIMAL(8,2) NOT NULL,
  PRIMARY KEY (i_id)
);

CREATE TABLE user_purchase(
  i_id INT(11) NOT NULL,
  name TINYTEXT NOT NULL,
  id INT(11) NOT NULL,
  FOREIGN KEY (i_id) REFERENCES items(i_id),
  FOREIGN KEY (name) REFERENCES items(name),
  FOREIGN KEY (id) REFERENCES user(id)
);

Meine Frage ist nun, wie ich mit PHP das Beste daraus machen kann. Über den obigen Link wurde vorgeschlagen, nur einen Fremdschlüssel in der user_purchase-Tabelle zu verwenden. Was aber, wenn ich mehrere Spalten haben möchte? Warum verwenden wir nicht mehrere Fremdschlüssel für verschiedene Spalten derselben Tabelle?

Ich benutze MySQL und PHP. Ich würde es begrüßen, wenn Sie einige Beispiele zeigen könnten, wie Sie PHP mit Tabellen verwenden, die Fremdschlüssel haben, um Informationen mit MYSQL-Befehlen abzurufen. Ich brauche wirklich eine gründliche Erklärung.

Ich muss auch die Begriffe Normalisierung und Denormalisierung verstehen. Ich würde mich freuen, wenn Sie einige Links angeben könnten, die diese Begriffe detailliert mit Beispielen erläutern, oder wenn Sie Vorschläge für einige großartige Bücher für Anfänger im Bereich Datenbankdesign, -implementierung usw. haben. Ich würde mich sehr freuen.

Danke vielmals.