我正在進行車隊管理。我想爲每輛車創建一張桌子,即當我創建一輛車時,我希望在運行時爲該車輛創建一張桌子。現在我正在編寫一個創建表的過程,但沒有創建具有相同名稱的表。如何實現這一目標?動態創建表(在運行時)
還可以嗎?
技術:ASP.NET/MYSQL
如果我去用於分配??????
我正在進行車隊管理。我想爲每輛車創建一張桌子,即當我創建一輛車時,我希望在運行時爲該車輛創建一張桌子。現在我正在編寫一個創建表的過程,但沒有創建具有相同名稱的表。如何實現這一目標?動態創建表(在運行時)
還可以嗎?
技術:ASP.NET/MYSQL
如果我去用於分配??????
這聽起來像一個非常糟糕的主意,但如果你堅持,你可以簡單地發送CREATE TABLE查詢,就像任何其他查詢。
創建表一旦使用phpMyAdmin或類似的工具,看看具體的CREATE TABLE命令,並使用它作爲模板來創建類似的表。
另一個選項是類似的命令,這將創建表具有相同的架構的CREATE TABLE,但沒有數據。
另一種方法是做正確的方式 - 1個表,用於存儲所有車輛。
您的老闆的解決方案將使其幾乎不可能查詢數據庫。向他解釋這一點,如果他仍然堅持你「按他的方式」,告訴他他是個傻瓜。
但很好,但! – 2009-10-06 10:48:14
通過對數據進行分區,可以獲得最好的結果,但將其留在一張表中。 See here for an example,and here too
否則這將是一個關係型數據庫的一個可怕的誤用。
他有一個很好的理由說明你應該使用該設計嗎?
有沒有什麼好的理由爲什麼有人會想這樣做? (我真正感興趣的,如果有一個有效的用例)
這的確是,其他人已經說過,一個非常糟糕的主意,有每輛車一個表。更爲健全的方法是爲不同種類的車輛創建單獨的表格,以防他們需要存儲不同的數據。它可能看起來像:
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]}
因爲你很可能知道更多有關數據庫設計比你的老闆,花時間的,以證明你的情況:
爲什麼你要每輛車一張桌子? – 2009-10-06 10:27:26
我的老闆讓我這麼做......一張桌子上有不同車輛的大量數據,以避免和分發他想要每輛車創建一張桌子的數據 – hrishi 2009-10-06 10:32:40
你的老闆不應該告訴你如何做事,特別是當這是一個壞主意。真的,不要這樣做。這是一個非常非常糟糕的主意。 – 2009-10-06 10:55:23