2012-07-09 76 views
0

我有一個asp.net 4.0 c#應用程序,其中用戶現在將能夠創建一個表並將數據存儲在該表中。第一版決定的一件事就是一旦創建了表格,它就不能被編輯,這純粹是爲了使它不那麼複雜。如果有解決方案可以在哪裏編輯模式也是很好的。用戶創建的數據存儲在表中,如結構

我的第一個想法是在db中有一個表,每一行代表每個「表」,一列將該模式存儲在xml中,然後第二列存儲數據。當試圖拉取數據時,我會將xml讀入數據的可處理工作中,然後將其保存回db中的xml中。任何想法建議或鏈接到其他人嘗試這將不勝感激!

在此先感謝。

+0

是否有固定數量的表格模式將被創建?也就是說,用戶能夠使用任何SQL數據類型創建任意數量的列的表? – 2012-07-09 15:25:21

+0

不會有固定的號碼,但數據類型將被固定或限制。列數可以限制在15歲左右。 – user1512300 2012-07-09 17:44:50

+0

如果有用,請不要忘記接受答案 – 2012-07-11 11:17:34

回答

0

有很多方法可以做到這一點:

  1. 您可以通過「創建表」 sql語句生成真正的表。這會給你提供最好的性能,但從數據庫管理員的角度來看,這將是一場噩夢。如果你沒有經驗,不要這樣做。

  2. 製作表格:MyTable,MyColumn,MyRow和MyCell。

    • MyTable的將有MyTableID(主鍵)和名稱,
    • MyColumn將有MyColumnID(主鍵),MyTableID(外鍵),名稱
    • MyRow將有MyRowID(主鍵),MyTableID(外鍵)
    • 了myCell將有MyCellID(主鍵),MyColumnID(外鍵),MyRowID(外鍵)和Value(大可變長度的字符串)

    這樣,您將至少能夠使用SQL來查詢,搜索一個nd修改你的數據和性能會比使用XML更好(雖然不如使用「create table」SQL時好)。

  3. 您可以使用NoSQL數據庫。他們中的很多人沒有嚴格的結構,並且可以存儲類似JSON的東西,因此您可以將幾乎所有內容存儲在其中。這個解決方案有很多缺點(比如缺少SQL和沒有ACID事務完整性),但也許它適用於你的情況。開始於What NoSQL solutions are out there for .NET?

+0

這是一個非常有趣的想法,正是我期待的腦力激盪的類型。你的第一點是我的第一想法,但你可以想象,如果我們有1000多個客戶製作自己的桌子,我只是不想看到所有這些或處理它。但我還沒有想到第2點。讓他們來吧! – user1512300 2012-07-09 15:26:16