Я работаю над управлением автопарком. Я хочу создать одну таблицу на автомобиль, т.е. Когда я создаю транспортное средство, я хочу создать таблицу для этого автомобиля во время работы. Теперь я пишу процедуру, которая создает таблицу, но таблица с тем же именем не создается. Как достичь этого?
Любая альтернатива?
Технология: ASP.NET/MYSQL
Что, если я пойду на порцию??????
Альтернативой является сделать правильный путь - с 1 таблицей, в которой хранятся все транспортные средства.
Ваше решение для босса сделает невозможным запрос к базе данных. Объясните это ему, и если он все еще настаивает на том, чтобы вы сделали это "своим путем", скажите ему, что он придурок.
Вы можете извлечь максимум из того, чтобы разделить данные, но оставив их в одной таблице. См. здесь пример, и здесь тоже
Действительно, как уже говорили другие люди, ОЧЕНЬ плохая идея иметь один стол на одно транспортное средство. Самым сильным подходом было бы создание отдельных таблиц для отдельных видов транспортных средств, если им нужно хранить разные данные. Это может выглядеть примерно так:
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]}
Поскольку вы, вероятно, знаете больше о дизайне базы данных, чем ваш босс, найдите время, чтобы доказать свое дело:
Выполнение этого было бы ужасным неправильным использованием реляционной базы данных.
У него есть веская причина, почему вы должны использовать этот дизайн?
Есть ли веские причины, почему кто-то когда-либо захочет делать что-то таким образом? (Я искренне заинтересован, если существует допустимый прецедент)
это звучит как очень плохая идея, но если вы настаиваете, вы можете просто отправить CREATE TABLE как и любой другой запрос.
создайте таблицу один раз с помощью PHPMyAdmin или аналогичного инструмента, чтобы увидеть точную команду CREATE TABLE и использовать ее как шаблон для создания похожих таблиц.
другой вариант - команда CREATE TABLE LIKE, которая создаст таблицу с той же схемой, но без данных.