尋找一個可擴展,靈活和快速的數據庫設計'建立你自己的窗體'風格的網站 - 例如Wufoo。批評我的MySQL數據庫設計的無限動態字段
規則:
- 用戶只有1種的形式,他們可以建立
- 用戶可以創建自己的領域或者從「標準」領域
- 用戶1種的形式已經爲許多領域爲用戶想要選擇
- 值可以是另一值例如相片值同級可以具有名稱,位置,寬度,高度爲同級值
個特殊規則:
- 用戶可以提交自己的形式最多,每天5次
- 價值的日期是非常重要的
- 靈活性,能夠在價值報告(單用戶,所有用戶,1場,許多領域)是非常重要的 - 數據可視化(大多數將按時間順序爲基礎,例如所有用戶2009年7月的所有照片)。
表 「用戶」
UID
表 「爲field_user」 - 一個字段分配給一個用戶形成
FID
UID
重量 - int - 我們ED命令字段上的用戶形成
表 「字段」
FID
creator_uid - INT - 字段 '創造者'
標籤 - VARCHAR - 例如電子郵件
value_type - varchar - 用於確定「值」表中的字段將被填充(例如,如果'int',則該字段的值將數據提交到values.type_int字段中 - 以及所有其他.type_x字段將爲NULL)。
field_type - varchar - 例如'email' - 用於特殊條件,例如驗證規則
表 「值」
VID
parent_vid
FID
UID
日期 - 日期
date_group - 詮釋 - 值1-5(用戶可以提交每天5種形式最大值)
type_varchar - VARCHAR
TYPE_TEXT - 文本
type_int - 詮釋
type_float - 浮
type_bool - 布爾
type_date - date
type_timestamp - timestamp
據我所知,這種方法將意味着'Value'表中的記錄將只有1條數據與其他.type_x字段包含NULL的......但從我的理解這個設計將是'最快'解決方案(減少查詢,減少連接表)
感謝您訪問OSCON和EAV的鏈接。 Josh提出了EAV'il數據庫場景的替代數據庫設計嗎? – 2009-07-21 16:04:22
在SQL中實現「完全靈活的模式」沒有真正的好方法,請參閱http://www.pgexperts.com/presentations.html以獲取許多pgexperts演示文稿幻燈片的鏈接,包括OSCON 09之一(「數據庫作品「也應該有一些東西); EBlob本質上是替代品,當然它有自己的問題(與EAVil不同)。 – 2009-07-21 18:07:54