Я разрабатываю систему назначения, которая имеет следующие таблицы (см. Прилагаемое изображение). Таблица tblScheduleDates имеет некоторые фиксированные даты для назначений в течение года, которые вводятся в начале года, например 28/02/2012,1/03/2012,4/3/2012 и т. Д., А в tblscheduleTimes Времена для этих назначений. Так, например, 28/02/2012 доступны 10: 00,11: 00,12: 00 и т. Д. Тблклинги - это когда назначается встреча с фиксированной датой, а фиксированное время и статус бронирования принимают значения забронированных или отменен. Я хочу попытаться написать хранимую процедуру, чтобы вернуть оставшиеся доступные даты и время из tblschedates и tblscheduleTimes. Поэтому я думаю, что фиксированные даты и время должны быть проверены, если они существуют в tblbookings, и если они не будут возвращены хранимой процедурой. Любые идеи или помощь приветствуются Сохраненная процедура для возврата определенных строк
ответ
Связано ли 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
)
Я хотел бы предложить переименовать таблицу, как это, кажется, действительно быть дата расписания и время смешаны вместе. Решение, подобное моей второй паре ниже, разрешит это неправильное употребление.
Если ссылки на диаграмме справа:
Может быть, я что-то не хватает, но вот что я вижу:
В таблице бронирование только привязаны к scheduleddate. Однако эта запланированная дата имеет тип, связанный со временем. Разве это так, что у вас может быть тип, который является графиком на весь день? В противном случае каждый заказ на 28/02/2012 должен будет создать новую запись в SchedulDates. Итак, у вас может быть 5 строк за ту же дату, только потому, что у них разные времена? Я не вижу необходимости хранить дату 5 раз в разы, когда это действительно разные времена.
Почему бы не сделать заказ, связанный с планированием и планированием? Это также упростит ваш запрос.
Или у вас может быть таблица сопоставления, которая назначается datetime, которая связывает эти два вместе, и тогда вам нужно всего лишь ссылаться на одну таблицу в бронировании?
Или вы могли бы просто хранить дату и время вместе в одном столе?
Возможно, есть деловое основание, которое мне не хватает.
- 1. Сохраненная процедура для возврата bool
- 2. Сохраненная процедура для возврата кратных строк в приложение ASP.NET MVC
- 3. Сохраненная процедура для возврата определенного интервала записей
- 4. Сохраненная процедура для возврата списка идентификаторов последовательности
- 5. Сохраненная процедура удаления заявления после возврата
- 6. Сохраненная процедура для объединения строк таблицы
- 7. Сохраненная процедура для вставки
- 8. Сохраненная процедура для массива
- 9. Сохраненная процедура для всего
- 10. Сохраненная процедура для просмотра
- 11. Сохраненная процедура для динамического SQL
- 12. Сохраненная процедура DAL
- 13. Сохраненная процедура?
- 14. Сохраненная процедура для замены определенных переменных в строке
- 15. Сохраненная процедура с параметрами для возврата определенных нескольких столбцов, не все (*)
- 16. Процедура PL/SQL для удаления определенных строк
- 17. Сохраненная процедура OutBound Gateway Тип возврата для Oracle Clobs?
- 18. Сохраненная процедура DB2 Возвращение Слишком много строк
- 19. Сохраненная процедура вставки нескольких строк из XML
- 20. Сохраненная процедура переупорядочения строк в таблице 2
- 21. MySQL Сохраненная процедура с
- 22. Объединение строк в DB2 Сохраненная процедура
- 23. Сохраненная процедура обновления строк, если существует
- 24. Передача массива строк в LINQ Сохраненная процедура
- 25. mySQL Сохраненная процедура разделения строк по разделителю
- 26. Сохраненная процедура иногда зависает
- 27. Сохраненная процедура просмотра для выбора
- 28. Сохраненная процедура для слияния таблиц
- 29. Сохраненная процедура для мягкого удаления
- 30. Сохраненная процедура для SQL Server
В любом случае, я думаю, вы должны дать ответ в обоих случаях. По фактической диаграмме и диаграмме, если вы не отвечаете на вопрос ОФ –
Иногда лучше не просто отвечать вслепую, а вместо этого находить рассуждения позади вопроса. Если проблема видна, то ее нужно воспитывать. Распространение чего-то неправильного не кажется правильным.Возможно, это будет толчок в другом направлении, который дает ответ pikk, поскольку схема становится легче управлять. –
Я просто обновил свой ответ, увидев несоответствие диаграммы и фактические столбцы. Похоже, он настроен так, как я и предполагал, но ссылки не нарисованы правильно. –