Создание динамического веб-сайта с Mysql и PHP - PullRequest
0 голосов
/ 25 октября 2011

Intro

Здравствуйте!Я нахожусь в процессе создания веб-сайта для текстов песен, где я буду хранить тексты в базе данных MySQL.

Я хочу иметь 2 основные таблицы: 1 для текстов песен, которые будут иметь идентификатор, заголовок, текст текста, имя исполнителя и количество просмотров.

В другой таблице будет таблица исполнителя с: id, имя исполнителя

ВОПРОСЫ:

  1. Как связать две таблицы, используя поле имени исполнителя в обеих таблицах?Я хочу отобразить всех исполнителей на своем сайте из таблицы и просмотреть все тексты песен, относящиеся к этому конкретному исполнителю /
  2. Как мне связать конкретную запись или поле в таблице?

Пожалуйста, помогите, или если вам известны какие-либо сайты или видео, которые могут помочь мне изучить эти и другие вещи, которые могут помочь мне в создании моего сайта, будем благодарны.

Ответы [ 2 ]

2 голосов
/ 25 октября 2011

Не сохраняйте имя исполнителя в обеих таблицах. Это побеждает цель иметь отдельный стол художника. Вместо этого сохраните ArtistID в таблице Lyrics и сохраните только ArtistName в таблице Artist. Таким образом, если вы, например, неправильно написали имя исполнителя, вам нужно будет обновить только одну таблицу, и вы не нарушите отношения между текстами песен и исполнителем.

Таблицы связаны между собой, используя Внешний ключ Отношения.

0 голосов
/ 25 октября 2011

Я отвечаю на первый вопрос.
Вы действительно должны изменить свою таблицу песен, используя поле id_artist вместо artist name.
Это гарантирует, что вы не дублируете имена (тратите пространство впустую) и не можете написать неправильное имя, которое приведет к неверному результату во время запросов.
Так что вы можете сделать

SELECT a.`artist name`, l.title, l.text
FROM artist a INNER JOIN lyrics l
ON a.id = l.id_artist
WHERE a.name = '....'
// or you can use WHERE a.id = ...
...