2012-12-05 28 views
-1

這個俱樂部會員系統是用java製作的。我已經做了什麼已經是一個數據庫帳戶,其中註冊的成員和管理員存儲在這個表,這個表的字段是用戶名,名字,姓氏,密碼,date_join,角色等...俱樂部會員系統數據庫所需的桌子是什麼?

我們的計劃到目前爲止,如果人員註冊,那麼他自動成爲成員,直到管理員也將他作爲管理員升級爲成員,與具有完全權限的管理員不同的是,成員具有有限的系統權限。

我們的教授說我們需要修改我們的計劃,併爲任何想加入我們俱樂部的人添加付款要求,並且會員資格應該在一定的時間內到期。

由於我們缺乏俱樂部經驗,我們不知道我們應該如何實施這個附加功能。是否需要爲付款創建另一張表並將其與帳戶錶鏈接?而在該計劃中,註冊用戶是否應該先支付一定的俱樂部費用才能成功註冊?還是他現在可以註冊然後付款?當他的賬戶到期時,如果他沒有更新其會員資格,他會從數據庫中刪除嗎?

任何人有這種系統的想法,並可以建議一個良好的實施? 在此先感謝。

+1

沒有「一刀切」。你必須做分析你的需求的工作,因爲分析需求是這個項目最重要的部分。 –

回答

3

從簡單開始,命名您想要管理的所有名詞。那些是你的表名。

然後想想你可能想跟蹤的每個名詞的所有形容詞。如果一組形容詞適合某個類別,則在相關表格中創建一列。如果一個形容詞總是適用於每個可能的名詞,那麼就忽略它。數據庫旨在跟蹤不斷變化的數據,常量最好不要存儲。

然後想起那些不能錯過的形容詞。如果您允許選擇退出生日提醒,也許可能會遺漏一個人的出生日期。也許你的俱樂部是一個以生日爲導向的俱樂部,如果缺少一個名字就等於混亂。

然後看看所需的形容詞。找到一些自己或組合,確定在表中的條目。對於某些人來說,一個人可能會以他們的名字來標識,這意味着每個不相同的名字都會導致訪問不同的人,並且每個相同的名字都會導致訪問同一個人。如果你曾經見過兩個約翰史密斯,或者因爲婚姻而改變過你的名字,你可以立即看到單獨一個姓名列並不是確定身份的理想方式。識別字段的集合稱爲主鍵。

然後想一想這些名詞是如何相關的。如果一個會員與一個人不一樣,那麼你需要一起加入。有三種連接表的基本技巧,還有更高級的技術可能會在以後應用。

  1. 一個X(Person)只能與一個Y(Membership)相關聯,那麼X和Y表可能是合併到一個表中的候選人。這被稱爲1:1關係。一個X(Person)與許多Y(成員資格)相關聯,那麼Y(成員資格)表應該包含一個與它關聯的X(Person)的主鍵的外鍵引用。這被稱爲1:N關係。許多X(Person)與一個Y(Membership)相關聯,那麼X(Person)表應該包含對與其相關聯的Y(成員)的主鍵的外鍵引用。這稱爲N:1關係

  2. 許多X(人員)與許多Y(會員資格)相關聯。簡而言之,一個人可能擁有特定的會員資格,成爲團體會員資格的一部分,可能購買了多個會員資格套餐,和/或可能只有一個會員資格。在這種情況下,您需要使用構建的「關係」表來管理關係,該關係表包含兩個外鍵引用,一個位於X和Y的每個主鍵。最後,這兩個外鍵引用可能應該XY(PersonMembership)表格的關係的主鍵。

還有其他連接表的方式,但基本上它們是最後一種技術的擴展,在這種情況下,您可以增加連接表的數量。

這會給你一個好的開始,你很快就會看到你所做的選擇將不會和其他任何人做出的選擇一樣,這就是爲什麼只有很少的標準數據庫表集合的原因。一旦你建立並運行了一個基本的框架,你會發現你總是可以同時提取兩組相關的數據,然後(如果你走得那麼遠),你可能會考慮違反一些性能規則。只是不要試圖從一開始就違反規則;你必須遵守規則以知道何時打破它們。這樣,你就會知道自己在獲得目標方面失去了什麼,並且確實避免了實際使用中引入的陷阱。

相關問題