次の表(添付の図を参照)を持つ予定システムを開発しています。テーブルtblScheduleDatesには、年の初めに入力された年内の予定の固定日付がいくつかあります。たとえば、28/02/2012,1/03/2012,4/3/2012などです。tblscheduleTimesにはいくつか固定されていますそれらの予定の時間。たとえば、28/02/2012の場合、利用可能な時間は10:00,11:00,12:00などです。tblBookingsは、予約された日付と固定時間を使用して予定が設定され、予約状況が予約された値キャンセル。私は、残りの利用可能な日付と時刻をtblscheduledatesとtblscheduleTimesから返すストアドプロシージャを作成しようとします。だから私は何とかtblbookingsに存在し、それらがストアドプロシージャによって返されない場合、固定日付と時刻をチェックしなければならないと考えています。任意のアイデアやヘルプは歓迎です特定の行を返すストアドプロシージャ
0
A
答えて
2
ScheduleTimeはScheduleDatesにリンクされていますか?あなたが持っている限り、スキーマは、たくさんの重複データを持っているか、間違ったデータだけを持っているようです。
時刻の現在のPK/FKマッピングが正しく表示されていないようです。リンクは、時間の種類を示します。しかし、scheduletimeidは予定されていますか?
値が正しい場合:
SELECT tblScheduleDates.*, tblScheduleDates.*
FROM tblScheduleDates
JOIN tblScheduleTimes
ON tblScheduleTimes.scheduleTimeID =
tblScheduleDates.scheduleTime_ID
WHERE NOT EXISTS
(
SELECT 1
FROM tblBookings
JOIN tblBookingStatus
ON tblBookingStatus.Status = 'Booked'
WHERE tblBookings.ScheduleDate_ID
= tblScheduleDates.scheduleDateID
)
本当に一緒に混合スケジュールの日付と時刻のようだと、私はテーブルの名前を変更することをお勧め。下の2番目の箇条書きに似た解決策が、この誤った名前解決を解決します。
図中のリンクが正しい場合:
たぶん私は何かが欠けていますが、ここで私が見たものである。
予約テーブルのみscheduleddateに関連付けられています。ただし、このスケジュールされた日付は、時間と関連するタイプです。あなたは一日のスケジュールであるタイプを持つことができるようにこれはありますか?それ以外の場合は、2012年2月28日のすべての予約で、ScheduledDatesに新しいエントリを作成する必要があります。したがって、異なる日付を持つために、同じ日付の5行を持つことができますか?私は実際に異なる時であるときに5回の別々の時間を保存する必要性を見ません。
なぜ予約されていて、スケジュールに結びついていないのですか?これにより、クエリがはるかに簡単になります。
または、2つのマップを結びつける予定のマッピングテーブルを持つことができます。予約でその1つのテーブルのみを参照する必要がありますか?
また、日付と時刻を1つのテーブルにまとめて保存するだけでもいいですか?
多分私が行方不明になっているビジネス上の理由があります。
関連する問題
- 1. 別のストアドプロシージャの行数を返すためのストアドプロシージャの作成
- 2. 特定のIDを持つ行を返すSQLiteテーブルを照会
- 3. DataTableの特定の列名から行を返す - C#
- 4. 特定の実行を複数回繰り返す方法
- 5. ストアドプロシージャに返されない行
- 6. mysqlの値を返すストアドプロシージャを定義する方法
- 7. 特定のテーブルに挿入するストアドプロシージャを検索します。
- 8. ストアドプロシージャ - 特別アカウント
- 9. sysrefcursorを返すPLSQLストアドプロシージャ
- 10. ストアドプロシージャからテーブルを返す
- 11. ストリング値を返すストアドプロシージャ
- 12. ストアドプロシージャ/関数から複数の行を返すMySql
- 13. SSIS:ストアドプロシージャが特定の値を返す場合の電子メールの送信方法
- 14. ORACLEストアドプロシージャが多すぎる行を返す
- 15. EF 4.1コードファースト:ストアドプロシージャを実行してIDENTを返します
- 16. Android setcolour listview特定の行(特定の行のみ)
- 17. NSDateFormatter.dateFromStringは、特定の言語の特定の日付のnilを返します
- 18. MySQLのストアドプロシージャの値を返す
- 19. データベース内の特定のテーブルから複数の行を返します
- 20. カスタム複合型のコレクションを返すストアドプロシージャ
- 21. 複数のレコードセットを返すMySQLストアドプロシージャ
- 22. Npqsqlストアドプロシージャが複数のREFCURSORを返す
- 23. シーケンスIDのリストを返すストアドプロシージャ
- 24. Powershell:httpをスクラップし、特定の行を変数として返します。
- 25. 特定の文字列を検索して行全体を返す
- 26. ストアドプロシージャのGRANT、REVOKEまたはDENYへの特定の権利
- 27. CSSフレックスボックス---フレックスラップ:折り返し;特定の行をスタイルする方法は?
- 28. テキストエリアの特定の行の特定の位置にカーソルを設定します
- 29. 特定のDBのすべてのストアドプロシージャのキーワードを検索しますか?
- 30. テンポラリテーブルデータを返すエンティティにストアドプロシージャをマップ
とにかく、どちらの場合でも答えを出すべきだと思います。実際のダイアグラムでは、OPの質問に答えることができないのであれば、ダイアグラムを作成します。 –
盲目的に答えるだけでなく、質問の背後にある推論を見つける方がよい場合もあります。問題が見られる場合は、問題が発生している必要があります。間違ったことを伝えることは正しいとは思わない。たぶん、これは、スキーマが管理しやすくなるにつれて、ピックに答えを出す別の方向へのプッシュとなるでしょう。 –
ダイアグラムと実際のカラムの不一致を見て、私の答えを更新しました。私が示唆したように設定されているように見えますが、リンクが正しく描かれていません。 –