1

次のテーブルがあります

  1. ユーザー
  2. 質問
  3. 質問のカテゴリ
  4. 回答

今、ユーザークラスに質問へのリンクを持たせるべきか、答えだけを持たせるべきか混乱しています

ユーザーは、フォームに表示された質問に回答します。

したがって、毎年、さまざまな質問に対してさまざまな回答が得られます

4

3 に答える 3

2

ユーザーは質問をすることができ、質問はカテゴリに属する​​ことができ、多くのユーザーが回答を投稿できると仮定します。実際、stackoverflow のようなサイトがどのようなものかについてです。

create table user (
  user_id integer primary key,
  name varchar(40) not null
);

create table category (
  category_id integer primary key,
  category varchar(40) not null
);

create table question (
  question_id integer primary key,
  question text,
  asked_by_id integer not null,
  category_id integer not null,
  foreign key asked_by_id references user(user_id),
  foreign key category_id references categor(category_id)
);

create table answer (
  answers_id     integer not null,
  answered_by_id integer not null,
  answer text,
  primary key (answers_id, answered_by_id), -- we allow one answer per person for a question
  foreign key answers_id references question(question_id),
  foreign key answered_by_id references user(user_id)
);

そして、クエリ:

select qu.name as asked_by,    question, category,
       au.name as answered_by, answer
from user qu                                       -- iterating through users
join question q on qu.user_id    = asked_by_id     -- joining them to their questions
join category c on c.category_id = q.category_id   -- find the category
join answer     on answers_id    = question_id     -- join by what answers this question
join user au    on au.user_id    = answered_by_id; -- looking up the user who answered it

(サーバーで試していないので、誤植があるかもしれません。お気軽に修正してください。)

于 2012-07-27T08:21:06.557 に答える
0

まあ、やりたいことによっては理にかなっています。ユーザーは質問を投稿できますか? はいの場合は、リンクします。そうでない場合、空のままになるため、リンクしても意味がありません。

于 2012-07-27T07:55:09.457 に答える