|
|
|
|
|
для: hammet
(17.05.2007 в 12:31)
| | upd Еще у альбома есть обложка :)
ALTER TABLE `albums` ADD `cover` VARCHAR( 255 ) NOT NULL ; | |
|
|
|
|
|
|
|
для: Trianon
(17.05.2007 в 12:28)
| | Да, верное замечание.....
апдейт: ALTER TABLE `albums` ADD `genre_id` INT( 11 ) NOT NULL AFTER `artist_id` ;
можно подробнее по поводу M:N и таблиц связок?
Я полагал все это делать в момент выбоки....т.е. SELECT s.genre_id AS genre FROM songs s,genre g WHERE s.genre_id=d.id;
Или как? | |
|
|
|
|
|
|
|
для: hammet
(17.05.2007 в 12:20)
| | как артисты так и альбомы могут проявлять себя в разных жанрах.
в альбом (если это сборник) может входить несколько артистов.
Всё это отношения M:N, все они реализуются дополнительными таблицами связок. | |
|
|
|
|
|
|
|
для: hammet
(17.05.2007 в 11:57)
| | ну вот что имеется на данный момент:
CREATE TABLE `songs` (
`id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 255 ) NOT NULL ,
`artist_id` BIGINT( 20 ) NOT NULL ,
`album_id` BIGINT( 20 ) NOT NULL ,
`genre_id` INT( 11 ) NOT NULL ,
`comments` TEXT NOT NULL ,
`url` VARCHAR( 512 ) NOT NULL ,
`rating` INT( 11 ) NOT NULL ,
`upload_date` DATE NOT NULL
) ENGINE = MYISAM ;
CREATE TABLE `artists` (
`id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`artist` VARCHAR( 255 ) NOT NULL ,
`genre_id` INT( 11 ) NOT NULL
) ENGINE = MYISAM ;
CREATE TABLE `albums` (
`id` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`album` VARCHAR( 512 ) NOT NULL ,
`artist_id` BIGINT( 20 ) NOT NULL ,
`year` YEAR NOT NULL ,
`votes` INT( 11 ) NOT NULL DEFAULT '0'
) ENGINE = MYISAM ;
CREATE TABLE `genres` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`genre` VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM ;
|
| |
|
|
|
|
|
|
|
для: Trianon
(17.05.2007 в 11:43)
| | хм....коротко и понятно)
спасибо | |
|
|
|
|
|
|
|
для: hammet
(17.05.2007 в 11:28)
| | первый и делайте. Тем более если по душе. | |
|
|
|
|
|
|
| Здравствуйте! Сегодня начинаю делать муз. каталог mp3.
Начал продумывать структуру БД. Мне нужен совет человека, который уже далал подобный сайт.
У меня есть 2 варианта реализации....
1) таблица для каждой субстанции - album, genre, artist и т.д. с полями вроде id,name. Ну у альбома еще добавится
год и рейтинг. И таблица songs: id, title, album_id, artist_id, genre_id и т.д.
И потом делать выборку из неск. таблиц.
Но тут есть свои плюсы и недостатки - при добавлении песни нужно делать запись в n-таблиц при добавлении песни. Т.е. проверять например таблицу с жанрами, если такого жанра нет, его нужно добавить...ну и так для всех параметров песни... Преимуществом такой схемы, как мне кажется, является логичность и расширяемость....может скорость работы, т.к. в самой большой таблице songs будут поля INT.
2) Второй вариант - одна большая таблица songs, куда напрямую пишем всю информацию по конкретной песне, т.е. id, title, artist, album, genre, comments, rating и т.д.
Громоздко, но достаточно просто и понятно :)
Мне по душе больше первый вариант...
Выборки будут стандартные (как на всех подобных сайтах)....Каталог музыки, рейтинги, поиск, алфавитный указатель и т.д. - ничего особенного...
Зарание спасибо! | |
|
|
|
|