Como usar chaves estrangeiras com PHP

Então eu entendo como criar chaves estrangeiras e sei qual é o propósito do FK. Mas eu tenho um problema em entender como usá-los. Eu fiz uma pergunta sobre chaves estrangeirasAQUI (clique no link)

Aqui está o que eu fiz:

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)
);

Agora minha pergunta é como tirar o máximo proveito disso usando PHP? No link acima, as pessoas sugeriram que é bom usar apenas uma chave estrangeira na tabela user_purchase, mas e se eu quiser várias colunas? Por que não usamos várias chaves estrangeiras para colunas diferentes da mesma tabela?

Eu estou usando o mysql e php. Eu apreciaria se você pudesse mostrar alguns exemplos de como você usa o PHP com as tabelas que possuem chaves estrangeiras para obter informações usando os comandos MYSQL. Eu realmente preciso de uma explicação completa.

Eu também preciso entender os termos Normalização e Desnormalização. Eu apreciaria se você pudesse dar alguns links que explicam estes termos em grande detalhe com exemplos ou se você tem alguma sugestão para alguns grandes livros para iniciantes em design de banco de dados, implementação, etc, eu realmente aprecio.

Muito obrigado.

questionAnswers(5)

yourAnswerToTheQuestion