2012-05-03 39 views
0

我開發將基於大量的個人領域,用戶會從列表中選擇的交友網站。我有43個不同的領域,用戶必須填寫 - 每個領域有多個答案選項。數據庫體系結構 - 交友網站

我有3種選擇:

  1. 構建所有硬編碼的網站,並設置所有的字段和它們在代碼選項 - 這將是難以維持。

  2. ,我現在看到的另一種選擇是打開一個表中的每個字段列表,並根據其選項來填充它。

  3. 爲每個字段列表打開一個表並保存其名稱及其ID以及另一個字段選項表,這些字段選項將包括字段ID和選項名稱。

這些是我所看到的選項 - 這將是去的最佳途徑?有沒有其他的選擇我不知道?

+0

3有父表維護字段和子表維護他們的選項的選項是更好的選擇。 – Seshagiri

+1

如果你開始這種類型的項目,你應該真的閱讀數據庫設計。我推薦Elmasri和Navathe的「數據庫系統基礎」。實際上,它需要一個數據庫,而不是代碼。 – Ste

+1

我很想編輯你的答案,並刪除選項1它是如此可惡的建議!選項3是您的最佳選擇。 – Paddy

回答

2

創建表「田」用ID和姓名,並一表「FIELD_OPTIONS」一個ID,該FIELD_ID和選項的名稱。

這將允許最大的靈活性。
例如,您可以將「ALLOWS_MULTISELECT」列添加到「FIELDS」表中以允許選擇多個選項。

+0

使選項3 ...在這種情況下,我關心的是速度表現。這是一種網站,將有一個龐大的數據庫和網站需要快速工作 – Olga91

+0

你不必擔心在這種情況下的性能。 –

+0

謝謝你,我會盡力與你的建議一起去,並更新你的表現。 – Olga91

0

看起來像你的目標最好將用於面向文檔的數據庫,如MongoDB的, 是否使用SQL的要求?

與像文件:

{ 
"question": <>, 
"answers": ["1","2","3","AA"], 
"correct": "1" 
} 
+0

是的,我在這個項目中使用SQL,所以NOSQL不是一個選項:)看看其他方式嗎? – Olga91

+0

這不是關於問題和答案。這是有關的屬性,如「性別:男,女」 –

+0

@DanielHilgarth使用SQL丹尼爾回答它不是差的答案或領域, – iMysak

1

創建具有下拉菜單中選擇選項所有字段的基表。從這些基表中加載選擇字段選項。 然後創建另一個表,將每個人的數據保存爲該表的一行。 該人員的數據表將具有與表單中每個字段對應的列。

+0

我有35個基本表..很多表加載到一個頁面...而我需要這個網站快速工作 - 速度表現就是這種情況下的一切 – Olga91