Динамическое создание таблицы SQL
Добрый вечер уважаемые программисты. Я недавно только начал изучать javascript в университете (Испания, Компьютерная инженерия).
Сейчас прохожу практику в одной маленькой компании. И пишу для них локальный сайт. Сайт для поиска информации по базе (разные селекты, создание таблиц). Все просто и понятно. Вчера они мне сказали добавить новый функционал. P.s можете пропустить мой бред с вверху :) Вопрос: Мне нужно написать такой скрипт: В mySql есть таблица с одним столбцом (ID primary kay). Есть Excel файл (.xls) с него я должен читать колонку за колонкой. С этого Excel файла я должен создать таблицу в mySql. Прочитав первую колонку, должен спросить у пользователя что он хочет сделать: Создать в таблице новое поле и записать туда данные с колонки Excel, игнорировать ее или добавить ее в содержимое уже в существующие поле в БД (то есть если есть в БД поле "Age" а в экселе по русски пишет "возраст", то добавить в "Age"). И так по очереди все колонки из Excel. Это вообще возможно сделать? :agree: :help: Очень прошу помогите как это можно сделать. Гуглил три часа, ничего не могу найти. Я на javascript никогда не писал, в основном Java, Scala, Python, а тут на практике Веб. Помогите студенту :cray: Всем буду очень благодарен за любую помощь. |
Цитата:
Цитата:
|
Цитата:
Так они хотели я им сделал. Теперь они хотят это. Я прям честно не знаю что делать. Согласен с Вами:) Но так они хотят. |
Цитата:
И очень плохо. В MySQL, да и не только, можно подготовить один запрос для многострочной записи данных, а то что делаете вы называется насиловать базу множеством запросов. Но куда более интереснее сама постановка задачи, а именно - порождать столбцы в sql-таблице по пришедшему файлу. Это как? То есть, буквально следующее - пришло нечто с пятью колонками, породили такую таблицу в базе, пришло с десятью колонками и тоже нет проблем, породили. Ну породили, а дальше то что, работать с этими таблицами вслепую? База это не свалка, а данные, которые не просто извлекаются, а зачастую по условиям, а это значит в запросах явно указываются имена полей. И каким же образом и чем будут обслуживаться такие таблицы, что и запросы динамически под каждую таблицу создаются, и на все случаи? Либо вы некорректно сформулировали вопросы, либо ваш заказчик мается дурью, не понимая что есть данные. Что касается работы с MySQL посредством JavaScript, то таковое JS в рамках веб-страницы недоступно. Есть MSSQL, есть ActiveX компоненты для работы с базой, но опять таки не в рамках веб страницы. В среде Linux уже есть готовый сервер Apache/PHP/SQL. В рамках Windows IIS сервер, но лучше установить иной. РНР или иной серверный язык будет работать и с базой и обслуживать диалоги клеинт-сервер. РНР "общается" с базами посредством драйверов соответствующих. Если же вы сами хотите работать с MySQL, значит командная строка вам в помощь. Или если на JS, значит подымайте Node.js на локальной машине и стройте на нем локальный сервер. |
Цитата:
|
Цитата:
в php можно получить запросом имена всех столбцов базы. Зная имена столбцов можно делать селекты (SELECT). Дальше можно сделать форму через которую выбирать имя столбца и параметр. На пример (HDL = 1) HDL - название столбца (через форму "select") и "= 1" параметр который вводит пользователь в поле сам. Получиться что у пользователя есть список всех полей а параметр он введет сам. Будет такой запрос - (SELECT * FROM table_name WHERE HDL = 1) Цитата:
Цитата:
Теперь от меня хотят этого и ни как иначе. Даже не знаю что делать :( |
Цитата:
РНР к этому отношения не имеет, с таким же успехом можно получить и столбцы, и их характеристики вообще только средствами SQL. Дело не в этом - если база данных это некая "резиновая модель", структура данных в таблицах которой никогда неизвестна, то никакие формы и выбор через них не помогут. Выбрать в форме поле, потом ... WHERE HDL = 1, это до банальности просто, а на практике все намного сложнее. Таблицы НЕ должны расти в ширину. Если такое происходит, то либо не обдумана структура данных и связи этой структуры, либо не удачно выбрана база данных под требуемую модель данных. Цитата:
Я о РМА даже не заикался и они как заказчики правы, такое им не нужно, а вы как исполнитель даже предлагать такого не должны. РМА это средство администрирования для понимающих, а не для пользователей. |
warren buffet - реинкарнация или второе пришествие kostyanet?
Еще появится флуд, изловлю и удавлю. |
Часовой пояс GMT +3, время: 08:08. |