26.01.2020, 05:01 [+3 UTC]
в нашей команде: 4 171 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.80 (15.01.2020)
JS-v.1.35 | CSS-v.3.36

Общие новости:
06.01.2020, 22:45

Форум:
13.01.2020, 16:40

Последний вопрос:
26.01.2020, 00:24
Всего: 151483

Последний ответ:
24.01.2020, 20:57
Всего: 259687

Последняя рассылка:
26.01.2020, 04:16

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
14.05.2010, 14:27 »
Гуревич Александр Львович
Большое спасибо - теперь все работает правильно! Вопрос решен! [вопрос № 178350, ответ № 261378]

РАЗДЕЛ • Базы данных

Установка и настройка серверов баз данных, таблицы и запросы.

[администратор рассылки: Коцюрбенко Алексей Владимирович (Модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 739
solowey
Статус: Специалист
Рейтинг: 270
Megaloman
Статус: Советник
Рейтинг: 23

Перейти к консультации №:
 

Консультация онлайн # 144873
Раздел: • Базы данных
Автор вопроса: Ігор
Отправлена: 24.09.2008, 13:26
Поступило ответов: 2

День добрый. Как сделать более профессионально.
База SQLite
Есть две таблицы:

sqlite_exec ($id, "CREATE TABLE albums (id integer primarykey,
                                         type TEXT,
                                         artist TEXT,
                                         album TEXT,
                                         list TEXT,
                                         link TEXT,
                                         size TEXT,
                                         user TEXT,
                                         ip TEXT,
                                         data TEXT,
                                         deskr TEXT,
                                         reserv1 TEXT,
                                         reserv2 TEXT)");


sqlite_exec ($id, "CREATE TABLE songs (id integer primarykey,
                                         type TEXT,
                                         artist TEXT,
                                         songname TEXT,
                                         preview TEXT,
                                         link TEXT,
                                         size TEXT,
                                         time TEXT,
                                         user TEXT,
                                         ip TEXT,
                                         data TEXT,
                                         deskr TEXT,
                                         reserv1 TEXT,
                                         reserv2 TEXT)");

Как видно почти все поля SQL:
.. link TEXT,
 size TEXT,
 time TEXT,
 user TEXT,
 ip TEXT,
 data TEXT...

Одинаковы. Не лучше ли будет вынести их в отдельную таблицу? И потом по for_id определять кто и когда загрузил?

Потом для type сделать тоже таблицу
 name_group TEXT,
 data_create Text,
 descr TEXT

Но как связать все до кучи не совсем представляю

Последнее редактирование 24.09.2008, 13:27 [неизвестный]

Состояние: Консультация закрыта

Ответ # 230148 от Глымов Антип Петрович

Здравствуйте, Ігор!
"Но как связать все до кучи не совсем представляю"
Зачем тебе их связывать?
Для выборки нужных полей созданных таблиц используй SELECT.


Консультировал: Глымов Антип Петрович
Дата отправки: 24.09.2008, 13:56

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 230169 от Кэр Лаэда

Здравствуйте, Ігор!

как мне кажется, у вас довольно хорошая структура таблиц. Что касается хранения данных по песням и альбомам, а оставлять или не оставлять дублирующиеся колонки в обеих таблицах это уже ваше решение, но лично я бы оставил так как есть. Потому как в этом случае вы сможете указать ссылки на конкретную песню, и ссылки на конкретные альбомы. В том числе "время" в одной таблице это время звучания альбома, а в другом время - песни, т.е. несмотря на то что у этих полей одинаковые названия, но по сути в них будут хранится разные данные.

кроме того, может быть я чего то не то понял но в таблице songs у вас не хватает поля соответствия альбому где будет хранится id из таблицы albums




Консультировал: Кэр Лаэда
Дата отправки: 24.09.2008, 16:43

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 144873
PVS

# 1

= общий = | 24.09.2008, 13:34

Что должно получится? Что делает программа?

неизвестный

# 2

= общий = | 24.09.2008, 14:05

Вот именно: я не совсем и представляю какого вида должны быть запросы .
И стоит ли для

size TEXT,
 time TEXT,
 user TEXT,
 ip TEXT,
 data TEXT

Создавать отдельную таблицу, или же оставить все как есть.

неизвестный

# 3

= общий = | 24.09.2008, 17:27

© Цитата:
кроме того, может быть я чего то не то понял но в таблице songs у вас не хватает поля соответствия альбому где будет хранится id из таблицы albums


И не должно. Эти таблицы харнят СОВСЕМ разные данные.
В первой таблице хранятся альбомы и ссылки на их закачку
а во второй отдельные песни исполнителей и тоже ссылки но уже с превивом

Скажем в первой может храниться 10 альбомов даного исполнителя,
а во второй, скажем, только три песни этого же исполнителя.
Или же во второй таблице 20 песен какого-то исполнителя, а в первой может не быть и одного альбома.

Или в таком случае нужна еще одна база?
Вот просто я не знаю "как делают профессионалы"

Вот еще не знаю как поступить с "type" Это жанр. "РОк, поп, джаз.. и т.д."
Эти группы должны создаваться администраторм. Вот я и подумал хранить в этом поле for_id а в другой таблице описание этого "for_id"

Кэр Лаэда

# 4

= общий = | 24.09.2008, 17:34

ну лично я бы все таки сделал ссылку на альбом в песнях, даже если у вас нету альбомов а песни есть это поле просто может быть пустым, но если есть альбомы то логичнее было бы показывать пользователю, что вот эти песни относятся к такому альбому..
по поводу жанра согласен с вами лучше сделать тип integer и хранить просто список жанров в отдельной таблице, а в этой хранить только ссылку в виде id

неизвестный

# 5

= общий = | 24.09.2008, 18:12

© Цитата:
по поводу жанра согласен с вами лучше сделать тип integer и хранить просто список жанров в отдельной таблице, а в этой хранить только ссылку в виде id

Вот тут то и я не знаю какой запрос делать.
Допустим нужно выбрать всех исполнителей жанра "Ретро"
КАКОГО вида должен быть в этом случае запрос?

Кэр Лаэда

# 6

= общий = | 24.09.2008, 18:19

а чего тут сложного то


select * from zhanr z
left join songs s on s.type=z.id
where z.type='Ретро'

Кэр Лаэда

# 7

= общий = | 24.09.2008, 18:21

вам нужно почитать справку по sql в частности про LEFT JOIN,JOIN,RIGHT JOIN

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15167 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.80 от 15.01.2020
Версия JS: 1.35 | Версия CSS: 3.36