Как можно было бы представить запланированные события в RDBMS?

Вот еще одна оптимизированная версия, которая также обрабатывает закрытие : hover

. Вам нужно будет инкапсулировать свой сайт с помощью

<div id="container"></div>

, чтобы он мог Работа. Просто положить закрывающее событие на тело ничего не сделало

var bodyBound = false;
var container;

if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/iPad/i))
{
    container = $("#container");

     // Provoke iOS :hover event
    $("a.someLink").on("mouseover", handleHoverClick);
}

function handleClose(event)
{
    container.off("click", handleClose);

    bodyBound = false;
}

function handleHoverClick(event)
{
    if (!bodyBound)
    {
        bodyBound = true;

        // Somehow, just calling this function—even if empty—closes the :hover
        container.on("click", handleClose);
    }
}
6
задан pmr 1 May 2012 в 17:55
поделиться

2 ответа

Да, я решил эту проблему с моим коллегой следующим образом:

CREATE TABLE [dbo].[Schedule](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [StartDate] [datetime] NOT NULL,
    [EndDate] [datetime] NULL
)

CREATE TABLE [dbo].[ScheduleInterval](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [ScheduleID] [int] NOT NULL,
    [ScheduleIntervalUnitID] [int] NOT NULL,
    [Interval] [smallint] NOT NULL
)

CREATE TABLE [dbo].[ScheduleIntervalUnit](
    [ID] [int] NOT NULL,
    [Name] [varchar](50) NULL
)

INSERT INTO ScheduleIntervalUnit (ID, Name)
SELECT '1' AS [ID], 'Day' AS [Name] UNION ALL
SELECT '2' AS [ID], 'Week' AS [Name] UNION ALL
SELECT '3' AS [ID], 'Month' AS [Name] 

Расписание охватывает определенный промежуток времени, и интервалы возникают в течение этого промежутка времени. Единица интервала расписания определяет продолжительность интервала (дни, как в «каждый второй» (2) или «каждый третий» (3) и т. Д.), Неделю (день недели, например, понедельник, вторник и т. Д.) И месяц (календарного года). Используя это, вы можете выполнять запросы и логику к своей базе данных для получения расписаний.

Если ваши расписания требуют лучшего разрешения - вплоть до часов, минут, секунд - посмотрите на реализацию Unix cron . Первоначально я пошел по этому пути, но обнаружил, что приведенный выше подход является гораздо более упрощенным и поддерживаемым.

2
ответ дан 17 December 2019 в 07:08
поделиться

Чтобы записать правила «периодического повторения», вы можете почерпнуть вдохновение из формата crontab , за исключением, конечно, того, что вам не нужны ограничения на минуты и часы, а точнее день недели, день месяца и т.п. Поскольку в расписании может быть более одного (например) дня недели, для целей NF вам понадобятся типичные промежуточные таблицы, которые используются для представления отношений «многие ко многим», то есть одна с двумя внешними ключами на строку (одна для основной таблицы событий , один в таблицу дней недели) - и аналогично, конечно, для дней месяца и т. д.

Предположительно, каждое запланированное событие тогда также будет иметь продолжительность, категорию, возможно, местоположение, имя или описание описание.

"Насколько нормальна" форма (если вы позаботились о "наборах" с упомянутым выше отношением многие-многие) в основном зависит от того, зависят ли эти различные атрибуты друг от друга и как, например, если каждое событие в определенной категории имеет одинаковую продолжительность, вам нужно иметь отдельную вспомогательную таблицу с идентификатором, категория и продолжительность, и используйте внешние ключи в этой таблице, а не повторяйте парную информацию. Но из того, что вы говорите, я не вижу внутреннего нарушения правил нормальной формы, за исключением таких возможностей зависимости (которые не присущи тому немногому, что вы указали о планировании событий).

и используйте внешние ключи в этой таблице, а не повторяйте парную информацию. Но из того, что вы говорите, я не вижу внутреннего нарушения правил нормальной формы, за исключением таких возможностей зависимости (которые не присущи тому немногому, что вы указали о планировании событий).

и используйте внешние ключи в этой таблице, а не повторяйте парную информацию. Но из того, что вы говорите, я не вижу внутреннего нарушения правил нормальной формы, за исключением таких возможностей зависимости (которые не присущи тому немногому, что вы указали о планировании событий).

2
ответ дан 17 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: