Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
4
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
892
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4380
0
Помогите пожалуйста решить задачи
24th November, 23:53
6084
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4308
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2598
0
Структура базы данных
Просмотров: 349
 
Ответов: 3
Подскажите пожалуйста по структуре базы данных. Нужно хранить информацию по фильмам.
К каждому фильму, относиться много информации.
а именно:
Название
Оригинальное название (анг)
Год
Страна
Слоган
Режиссер в множестве
Сценарий (в множестве)
Продюсер (в множестве)
Оператор (в множестве)
Композитор (в множестве)
Художник (в множестве)
Монтаж (в множестве)
Жанр (в множестве)
Бюджет
Сборы
Зрители
Примера
рейтинг MPAA
Продолжительность
таких фильмов будет много (порядка 80 000), и почти все однотипные, поэтому нужно как-то грамотно составить DB, что бы не было проблем в дальнейшем.
как я думал сделать:
Главная таблица (catalog) в которую заносим
id — номер фильма
name — название
name_original — оригинальное название
type — тип картины (фильм, сериал)
year — год выпуска
здесь меня смущает нужно ли здесь держать (name, name_original)… или вынести ее в отдельную таблицу
таблица с параметрами (catalog_properties)
film_id — номер фильма
property_id — номер название параметра
property_value — номер параметра
таблица с именами параметров (catalog_properties_name)
id — номер параметра
name — название параметра
code — код параметра для внутренних потребностей фронтенда
+ несколько таблиц справочников, для стран, жанров, etc
таблица для параметров что не входят в справочники (catalog_properties_data)
id — номер параметра
name — название параметра
вот здесь меня смущает что все параметры будут держаться в поле с типом varchar
а хорошо бы для
бюджет, сборы в США — interger,
премьера — date,
рейтинг MPAA — enum
разве что делать таблицу для параметров такой:
id — номер параметра
name_string — название параметра
name_integer — название параметра
name_datetime — название параметра
name_enum — название параметра
и выбирать в дальнейшем так "SELECT CONCAT_WS('', name_string, name_integer, name_datetime, name_enum) as name" но хорошо ли так ??
+ еще не знаю как поступить с описанием фильмов, это будет тип TEXT, выносить ли в отдельную таблицу все описания, или запихать в таблицу параметров, что указана выше
> здесь меня смущает нужно ли здесь держать (name, name_original)… или вынести ее в отдельную таблицу
безусловно, лучше хранить в этой же таблице
> и выбирать в дальнейшем так «SELECT CONCAT_WS('', name_string, name_integer, name_datetime, name_enum) as name» но хорошо ли так ??
лично я не стал бы усложнять, пусть лучше будет varchar, 80к записей не так ж и много, но если все-таки хотите разделить то думаю будет правильней создать 3 таблицы для каждого нужного типа т.е. catalog_properties_data_string, catalog_properties_data_int, catalog_properties_data_datetime и соответственно добавить поле type в таблицу catalog_properties
Не надо так разделять. 80к — это копейки. Но:
1. обязательно настройте индексы.
2. если в 90% случаев нужно только название + режисёр, то не надо писать SELECT *… Перечислите все нужные поля.
На крайний случай, можете разделить одну таблицу на две со связью один-к-одному. В первой должны быть те поля которые используются всегда (id, название, режисёр), во второй все остальные. Это позволит писать SELECT * FROM `t1`.
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться