У меня проблема с кодированием, когда я должен сохранить «заметку» и даты, к которым относится заметка.
Подумайте о:
Примечание 1
Привет, сегодня мистер Клиент позвонил, договорившись о встрече
30/8/2009, 31/8/2009, 5/9/2009
Примечание 2
Бизнес как обычно.
30/8/2009
Примечание 3
Ресторан закрыт.
6/9/2009
Мне нужно хранить следующие данные в базе данных, сохраняя при этом индексы для эффективного поиска, то есть моему клиентскому приложению нужно будет выбрать дату и получить все примечания, относящиеся к этой дате, исключительно или частично.
Я обсуждал это с несколькими коллегами и друзьями и пришел к этому проекту.
Обратите внимание, что я хочу иметь возможность хранить всю информацию в одной таблице или более, если дизайн элегантный.
> Date Bitmap | Month | Year | Note
> 101.. 9 2009 Blah Blah // applies to 1st and 3rd
> 0001... 10 2009 Blah2 // applies to the 4th
> 100 9 2009 Blah23
Когда пользователь выбирает из списка нескольких дат следующую дату: 1 сентября
Он получит Бла Бла и Бла 23. Один объект даты и времени будет повторять заметку или принудительно создавать другую таблицу с внешним ключом.
В том смысле, что я мог бы хранить в первом столбце, к каким дням месяца относится примечание. В растровом изображении все может быть супер-эффективным. Любые другие способы (связанные таблицы с Note-ID или таблица со всеми днями с идентификаторами) приводили к ужасному дублированию поля примечания или повторяющихся дат. Я также не хочу думать о наличии текстового поля с наборами дат с разделителями и ужасного кода, который будет анализировать его при поиске.
У меня есть роскошь времени в этом проекте, как вы можете сказать.
Но как клиентское приложение RETRIEVE может сказать все заметки для данного набора дат? Есть ли битовые операции в MSSQL? Таким образом, я могу получить все строки, скажем, a '1' в 5-м и 7-м битах в этом двоичном поле ?
Я не могу использовать МЕЖДУ, так как у меня могут быть отдельные даты, которые не находятся в диапазоне или что-то в этом роде. Подумайте о том, чтобы иметь тип данных, где он мог бы представлять любое число от 1 до 31. Вот как я думал о растровом изображении.
Позвольте мне также сказать, что мы могли бы добавить дополнительное текстовое поле, в котором реальные даты (в реальном тексте) будут заполняться подпрограммой. Но в остальном это приложение будет основным интерфейсом, и пользователям редко придется смотреть на некрасивую таблицу.
Я чересчур инженерный, или вы можете мне помочь?
Спасибо за все ваши ответы.
Leo