2012-12-01 24 views
0

我不知道如何搜索這個,所以它在這裏。跨表的行同步?

我自己的條件是「同步」和「偏差」數據庫模式。如果有這樣的官方稱謂我想知道。

這可能看起來有點愚蠢,但我一直在堅持我要去哪個方向。我是創建數據庫模式的新手。我在Java應用程序上使用SQLite,並使用一個.db文件在不同的表中包含不同類別的信息。所以第一個表包含accountID/username/password;也許下一張表是accountID/firstname/lastname/email。隨着新功能的實施,我計劃在未來增加額外的表格。

我在這裏遇到問題的決定是......如果用戶創建了一個基本帳戶,但沒有填寫任何其他內容 - 我應該爲這些其他表創建一個空行嗎?或者我不應該添加一行,並在他們確實爲這些表輸入數據時創建行(可能會在幾個月後)?我希望這是有道理的。

有什麼優點/缺點?執行/編程?效率?等

感謝

回答

2

IMO,所有的單值的用戶屬性應該駐留在一個表,即用戶表將包含以下幾列:

  • ACCOUNTID
  • 的userName
  • 密碼
  • 姓氏
  • 姓氏
  • 電子郵件地址

加入用戶時,您可以指定每個屬性爲強制或可選。可選屬性將在數據庫中爲無效列。當用戶爲這些屬性指定值時,您只需在表中更新它們即可。繼續前進,在添加新功能的同時,如果碰巧遇到用戶的單值屬性,則需要更改用戶表並將該列的默認值添加爲空。

如果向用戶添加新屬性的頻率太高,則可以轉向屬性表模型,其中每行將存儲用戶的一個附加屬性。用戶表和此user_attrs表之間將存在一對多關係。 HTH。