2009-10-06 96 views
0

我正在進行車隊管理。我想爲每輛車創建一張桌子,即當我創建一輛車時,我希望在運行時爲該車輛創建一張桌子。現在我正在編寫一個創建表的過程,但沒有創建具有相同名稱的表。如何實現這一目標?動態創建表(在運行時)

還可以嗎?

技術:ASP.NET/MYSQL

如果我去用於分配??????

+1

爲什麼你要每輛車一張桌子? – 2009-10-06 10:27:26

+0

我的老闆讓我這麼做......一張桌子上有不同車輛的大量數據,以避免和分發他想要每輛車創建一張桌子的數據 – hrishi 2009-10-06 10:32:40

+3

你的老闆不應該告訴你如何做事,特別是當這是一個壞主意。真的,不要這樣做。這是一個非常非常糟糕的主意。 – 2009-10-06 10:55:23

回答

0

這聽起來像一個非常糟糕的主意,但如果你堅持,你可以簡單地發送CREATE TABLE查詢,就像任何其他查詢。

創建表一旦使用phpMyAdmin或類似的工具,看看具體的CREATE TABLE命令,並使用它作爲模板來創建類似的表。

另一個選項是類似的命令,這將創建表具有相同的架構的CREATE TABLE,但沒有數據。

6

另一種方法是做正確的方式 - 1個表,用於存儲所有車輛。

您的老闆的解決方案將使其幾乎不可能查詢數據庫。向他解釋這一點,如果他仍然堅持你「按他的方式」,告訴他他是個傻瓜。

+1

但很好,但! – 2009-10-06 10:48:14

0

否則這將是一個關係型數據庫的一個可怕的誤用。

他有一個很好的理由說明你應該使用該設計嗎?

有沒有什麼好的理由爲什麼有人會想這樣做? (我真正感興趣的,如果有一個有效的用例)

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]} 

因爲你很可能知道更多有關數據庫設計比你的老闆,花時間的,以證明你的情況:

  1. 向他解釋他的設計的影響。即很難查詢,效率低下
  2. 向他解釋正確設計的好處。更容易查詢,遵循約定等。
  3. 向他解釋他不會失去輸出關於單個車輛的數據的能力,而是通過更合理的設計導出(和維護)數據會容易得多
  4. 請他解釋他爲什麼首先想要提出設計的原因,並認真對待他的任何疑慮。向他解釋你的設計如何解決這些問題,用他提出的設計來解決這些問題有多困難。