2011-12-19 18 views
0

私はデータベースが初めてです。合計4つのテーブルがあります。ユーザーがFacebookにログオンすると、3つのテーブルに自動的にデータが入力されます。私は主キーの値をそれらのテーブルから4番目のテーブルに移入する必要があります。どうすればいいですか...すぐに助けが必要です!複数のテーブルの値を別のテーブルに挿入するにはどうすればよいですか?

これは、テーブルがどのように見えるかです:

table:attributes 
fb_user : fb_uid, birhtday, gender, email. 
company_master : com_id, com_name. 
position_master : pos_id, pos_name. 

そして第四の表は、このように書き:

[table]:[attributes] 
work_history : work_id, fb_uid, com_id, pos_id. 

fb_uidpos_idcom_idは主キーです。

少ないデータベース操作でこれを実行するにはどうすればよいですか?これを最適化するためにトリガーを使用する方法はありますか?

答えて

0

まず、使用しているデータベースのタイプは何ですか?第二に、これはデータベース設計上の問題のようです。異なるプライマリを使用してマッピングするのではなく、すべてのテーブルで一意のプライマリキーを使用する必要があります。 Facebookを使用しているので、FacebookのIDをすべてのテーブルのプライマリとして使用し、他のIDを一意のフィールドとして保存することは意味があります。これにより、結合などの便利な機能を簡単に使用して、複数の表から一度にデータを取り出すこともできます。これが実用的でない場合、たとえば、複数のログイン(FacebookのGoogleなど)を同じユーザーに使用している場合は、運転台として示唆するようなルックアップテーブルを使用して、 。理想的には、冗長データを可能な限り最小限に抑えて、データの矛盾のリスクを低減したいと考えています。データベースの初心者の方は、データベース設計とデータベースの正規化について読んでください。優れた設計はスケーラビリティを助け、多くの頭痛や欲求不満を防ぎます。

+0

私はmysql DBを使用しています。私はまだ初心者です。どうもありがとうございます。すべてのテーブルでフィールドを共通化せずに、これらのテーブルでそれを行う方法はありませんか? –

関連する問題