Как создать таблицу динамически во время выполнения

0

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

Любая альтернатива?

Технология: ASP.NET/MYSQL

Что, если я пойду на порцию??????

  • 1
    Почему вы хотите один стол на транспортное средство?
  • 0
    Мой босс попросил меня сделать это ... В таблице будут огромные данные о различных транспортных средствах, поэтому, чтобы избежать и распространять данные, он хочет создать одну таблицу для каждого транспортного средства.
Показать ещё 2 комментария
Теги:

5 ответов

6

Альтернативой является сделать правильный путь - с 1 таблицей, в которой хранятся все транспортные средства.

Ваше решение для босса сделает невозможным запрос к базе данных. Объясните это ему, и если он все еще настаивает на том, чтобы вы сделали это "своим путем", скажите ему, что он придурок.

  • 1
    но приятно хотя!
1

Вы можете извлечь максимум из того, чтобы разделить данные, но оставив их в одной таблице. См. здесь пример, и здесь тоже

0

Действительно, как уже говорили другие люди, ОЧЕНЬ плохая идея иметь один стол на одно транспортное средство. Самым сильным подходом было бы создание отдельных таблиц для отдельных видов транспортных средств, если им нужно хранить разные данные. Это может выглядеть примерно так:

vehicles 
    {vehicle_id, type, name, commission_date, [other data]}
freight_vehicles 
    {vehicle_id, load_capacity, [other data]}
passenger_vehicles 
    {vehicle_id, passenger_capacity, [other data]}

assignments 
    {vehicle_id, from_destination, to_destination, 
     started_at, finished_at, [other data]}

destinations 
    {destination_id, name, [other data]}

Поскольку вы, вероятно, знаете больше о дизайне базы данных, чем ваш босс, найдите время, чтобы доказать свое дело:

  • Объясните ему последствия его дизайна. То есть сложно запросить, неэффективно
  • Объясните ему преимущества надлежащего дизайна. Легче запрашивать, следует за соглашениями и т.д.
  • Объясните ему, что он не потеряет возможность экспортировать данные об отдельных транспортных средствах, а скорее, что экспорт (и поддержание) данных будет намного проще с более надежным дизайном.
  • Попросите его объяснить свои причины, по которым он хочет, чтобы предлагаемый дизайн был в первую очередь, и серьезно относится к любой из его проблем. Объясните ему, как ваш дизайн может решить эти проблемы, и насколько сложнее было бы решить их с его предлагаемым дизайном.
0

Выполнение этого было бы ужасным неправильным использованием реляционной базы данных.

У него есть веская причина, почему вы должны использовать этот дизайн?

Есть ли веские причины, почему кто-то когда-либо захочет делать что-то таким образом? (Я искренне заинтересован, если существует допустимый прецедент)

0

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

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

другой вариант - команда CREATE TABLE LIKE, которая создаст таблицу с той же схемой, но без данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню