我正在进行车队管理。我想为每辆车创建一个表格,即当我创建车辆时,我希望在运行时为该车辆创建一个表格。现在我正在编写一个创建表的过程,但是没有创建具有相同名称的表。怎么做到这一点?
任何替代方案?
技术:ASP.NET / MYSQL
如果我去分配怎么办?
答案 0 :(得分:6)
另一种方法是以正确的方式行事 - 使用1个存储所有车辆的表。
你老板的解决方案几乎不可能查询数据库。向他解释这一点,如果他仍然坚持你“按他的方式”这样做,告诉他他是个白痴。
答案 1 :(得分:1)
您可以通过对数据进行分区来获得最佳效果,但将其保留在一个表中。 See here for an example,and here too
答案 2 :(得分:0)
这听起来是一个非常糟糕的主意,但如果你坚持,你可以像其他查询一样发送CREATE TABLE查询。
使用PHPMyAdmin或类似工具创建表一次,以查看确切的CREATE TABLE命令,并将其用作模板来创建类似的表。
另一个选项是CREATE TABLE LIKE命令,该命令将创建具有相同模式但没有数据的表。
答案 3 :(得分:0)
这样做会对关系数据库造成严重的误用。
他有充分的理由说明你应该使用那种设计吗?
有没有什么好的理由让人们想要这样做? (如果有有效的用例,我真的很感兴趣)
答案 4 :(得分: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]}
由于您可能比您的老板更了解数据库设计,请花时间通过以下方式证明您的情况: