是否可以創建受變量影響的表格?基於變量的表格
喜歡而不是創建一個標準的表。你可以讓用戶創建一個自定義表格。像註冊一樣,我可以在數據庫下執行CREATE TABLE
,並且表名受PHP變量的影響?對於表中的字段也是一樣的東西?
例如,表中的字段爲$username.table
,表中的字段爲$username_field
?
是否可以創建受變量影響的表格?基於變量的表格
喜歡而不是創建一個標準的表。你可以讓用戶創建一個自定義表格。像註冊一樣,我可以在數據庫下執行CREATE TABLE
,並且表名受PHP變量的影響?對於表中的字段也是一樣的東西?
例如,表中的字段爲$username.table
,表中的字段爲$username_field
?
這當然有可能,你只需要寫出格式良好的CREATE TABLE
/ALTER TABLE
查詢。
爲了讓用戶能夠創建自定義字段,不需要自定義/動態創建表。
請考慮創建一個可將用戶創建的字段保存爲行的Custom_Fields
表。 例如
User Table
| userid | username |
Custom Field Table
| fieldid | userid | field_name | field_value
Get My Custom Fields/Values:
SELECT `field_name`,`field_value` FROM `custom_fields` WHERE `userid`=$myUserId
作爲一個選項,您可以爲每個用戶創建SQLite數據庫並將其放置在用戶分配的目錄中。
不是一個可怕的想法......但爲什麼不使用1個sqlite數據庫? :P – 2011-03-03 23:54:16
我同意你的看法,在你的例子中用小碎片拆分表格更明智一些。但是,如果要隔離每個用戶或應用程序,它可能會變得方便。另外,備份/恢復每個用戶更容易。 – Nazariy 2011-03-04 00:11:07
尼斯反擊!我必須同意。顯然,與其他任何事情一樣,它是基於利弊得來的。 – 2011-03-04 00:44:36
這不是你應該如何使用數據庫。如果你這樣設置你的數據庫,你將無法使用你的查詢語言的所有(大部分)函數。
但要創建表(在mysql中我假設你正在使用),請使用CREATE TABLE查詢。
爲什麼?我需要用戶能夠添加他們需要的字段。有點像讓他們創建一個onlin表格
然後,你需要設計你的數據庫,以允許這一點。不要懶惰,爲表單域創建表。這不僅是一個安全風險,它永遠不會很好地擴展。這是一個非常糟糕的例子,如何設計一個基於表的系統來處理動態表單生成。
DROP TABLE "main"."form";
CREATE TABLE "form" (
"id" INTEGER NOT NULL,
"name" TEXT NOT NULL,
PRIMARY KEY ("id")
);
DROP TABLE "main"."form_field";
CREATE TABLE "form_field" (
"form" INTEGER NOT NULL,
"id" INTEGER NOT NULL,
"name" TEXT NOT NULL,
PRIMARY KEY ("form", "id")
);
希望你的想象力可以帶你從這裏開始。
你不想這樣做。重新考慮你的模型 – 2011-03-03 23:41:33
爲什麼?我需要用戶能夠添加他們需要的字段。有點像讓他們創建一個onlin表單。 – AAA 2011-03-03 23:45:08
看我的答案......工程就是一切 – 2011-03-03 23:51:47