2012-09-27 28 views
-2

在我的web應用程序中,我有一個表單,我正在根據需要創建動態選擇框和文本框(它可以大於1),默認情況下有一對select框和文本框和我的表有兩列用於存儲該選擇框和文本框的值和值正在我的表中存儲,但問題是如果我添加多個選擇對和文本框在我的形式如何存儲我的表中的值?是否可以根據需要在運行時間在表格中創建列。如何在運行時在mysql表中創建列

+0

不建議在基於用戶交互的運行時在表中創建新列。在我看來這不是一個好方法 – Jayy

+0

您可能更好地重新考慮現有模式,而不是在運行時添加字段。 – Fred

+0

我建議你創建一個更多的列作爲ID,併爲每個新創建的textBox關聯一個唯一的編號,並保存一行包含該ID和數據列中的數據。 (它只是一個想法,因爲我不知道什麼是實際設計..) – Amarnath

回答

0

如果您可以計算文本框和選擇框的數量,則可以在運行時使用sql的alter table查詢來動態添加列。

+0

如何?如果我有3對選擇和文本框,可以指定示例查詢嗎? – yatinbc

+0

該表保存一定數量的數據,如果我們在運行時更改它的結構,該表中的數據會保持原樣嗎? – yatinbc

0

您可以使用良好的舊JDBC輕鬆創建;你可以看到an example here。正如其他人所建議的那樣,這不是一個適當的設計方法。

我不知道是否可以使用JPA,因爲表創建是您需要在persistence.xml中指定的屬性。 JPA可以自動創建表,但是每次你想要將數據保存到現有表時(除非有一些我不知道的覆蓋配置參數),你將丟失所有數據。

0

您爲應用程序創建了一個錯誤的模式。 爲了簡單地解決這個嘗試的模式是這樣的:

groupid, selectbox, textbox 

並將數據存儲在多個行。

例如,如果有2對盒,那麼你存儲兩行:

1, 'select', 'text' 
1, 'select2', 'text2' 

等。