for (var i = 0; i < dat.length; i++) {
Please note that if a client browser supports unicode-range (caniuse.com/#feat=font-unicode-range) the subset parameter is ignored; the browser will select from the subsets supported by the font to get what it needs to render the text.
Не надо в ячейку пихать массивы или списки. Одна ячейка таблицы - одно значение.
Отношение многие-ко-многим, как в данном случае, реализуется через промежуточную таблицу связи, в данном случае - (movie_id, producer_id), которая содержит все уникальные пары.