2012-02-05 5 views
-1

SQLデザイン/ロジック

Users: 
    id 
    fname 
    lname 
    email 
    password 
    group -> User/admin 

Listing: 
    id 
    userid 
    category 
    expiry 
    name 
    content 
    listingtype 
    location 
    price 
    gallery 

Gallery: 
    id 
    userid 
    galleryid 


Payment: 
    id 
    userid 
    type 

私が開発しています何ができます上場のウェブサイトでありますクライアントは、このプロセスのリストを作成します

登録 リストの作成 - 情報の選択日付の画像など 支払いに必要事項を記入し

私は私が私の構造を改善する可能性がどのようにフィードバックした後、午前

答えて

1

USERSテーブル内のGROUPではなく、GROUPテーブルとUSERS_GROUPマッピングテーブルを導入できます。このようにして、複数のグループをユーザに関連付けることができます。グループが「役割」と考えられていて、アプリのさまざまな部分へのアクセスが役割によって制御されている場合、これは意味をなさすことができます。その一般的な考え方は他の列にも適用できます。たとえば、複数のリストの種類をリストに追加する場合は、LISTINGTYPEを組み込み、LISTING表にマップできます。各フィールドは、あなたが望むことならば考えてみるために、別々のテーブルに考慮するかを把握するにはへ:

  • がに多くの属性情報を追加したレコード(グループの一例)と

    • 準複数の「タイプ」
    • 時間の経過とともに関連する値が変更されます(たとえば、ユーザーがメールを変更した場合、以前のメールに関連付けられたその場合は、有効期限のあるユーザに電子メールアドレスを割り当てる必要があります)

    ユーザーテーブルにパスワードを格納したくない場合があります。おそらく、 "暗号化されたパスワード"を保存する方がよいでしょう。新しいパスワードを取得し、ハッシュで実行して保存します。ユーザーが認証されたら、提供されたパスワードをハッシュで実行し、格納されているハッシュと一致するかどうかを確認します。

    ギャラリーにはidとgalleryidがあります。これらは異なっていますか?

    リストの作成日と有効期限が必要な場合があります。作成フィールドと最後に変更されたフィールドは、多くのテーブルで便利になる傾向があります。