0

私はコード ファースト アプローチを使用しており、Classes というテーブルを作成したいと考えています。このテーブルには、次の情報が保持されます。

  • 名前 (数学 1)
  • コード (MatA)
  • 科目(数学)
  • 説明(数学は楽しい)
  • BeginTime (日時)
  • EndTime (日時)
  • BeginDate (日時)
  • 終了日 (日時)

上記に加えて、クラスが開催される日を割り当てたいと思います。

  • 名前 (数学 1)
  • コード (MatA)
  • 科目(数学)
  • 説明(数学は楽しい)
  • BeginTime (日時)
  • EndTime (日時)
  • BeginDate (日時)
  • 終了日 (日時)
  • 月曜日 (ブール値)
  • 火曜日 (ブール値)

特に現在の日付に応じてクラスを呼び出す必要がある場合(つまり、月曜日に表示されるすべてのクラスを取得する場合)、効率が悪いようです。

では、どのようなテーブル構造にする必要がありますか?

ありがとう

4

2 に答える 2

2

Classes1 つは 用、もう 1 つは 用の 2 つのテーブルを作成する必要がありますClassSchedules。テーブルをClassId列で結合します。

BeginTimeところで、 andには 2 つの列は必要ありませんBeginDate。これらは同じ列に格納する必要があります。 EndTimeandについても同様EndDateです。

于 2013-01-12T06:05:43.437 に答える
1

次のことを試してください。

CREATE TABLE classes(
Name varchar(255),
Code varchar(255),
Subject varchar(255),
Description varchar(255),
BeginTime date,
EndTime Date,
BeginDate Date,
EndDate Date,
)

CREATE TABLE classdates(
Classname varchar(255),
Classdate varchar(255)
)

Select cl.*,d.classdate from classes cl (nolock)
join classdates d 
on d.classname = cl.classname

大規模なデータベースがある場合は、最初の推奨事項に従って、ClassID を名前と共に追加し、それを主キーにしてから ClassID を結合します。

于 2013-01-12T06:15:41.300 に答える