У меня проблема с кодированием, когда я должен хранить «примечание» и даты, к которым применяется примечание. Подумайте о:MSSQL2008: бит-массивы и битовые операции + база данных Мозговой штурм
Примечание 1 Привет, сегодня г-н Клиент позвонил, организовав эти встречи. 30/8/2009, 31/8/2009, 05/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 сентября Он получит Бла Бла и Blah23. Один объект времени даты будет повторять заметку или принудительно создать другую таблицу с внешним ключом.
В том смысле, что я мог хранить в первом столбце, в какие дни месяца относится к примечанию. В растровом виде все может быть суперэффективным. Любые другие способы (связанные таблицы с Note-ID или таблица со всеми днями с идентификаторами) привели к уродливому дублированию либо поля примечания, либо повторяющихся дат. Я также не хочу думать о наличии текстового поля с наборами дат с разделителями и уродливого кода, который будет анализировать его при поиске.
У меня есть роскошь времени на этот проект, как вы можете судить.
Но как может клиентское приложение RETRIEVE сказать, что все примечания для заданного набора дат? Есть ли бит-операции в MSSQL? Поэтому я могу получить все строки, скажем, a '1' в 5-м и 7-м битах в этом двоичном поле?
Я не могу использовать МЕЖДУ, поскольку у меня могут быть спорадические даты, которые не входят в диапазон или что-то в этом роде. Представьте, что у вас есть тип данных, где он может представлять любое число от 1 до 31. Вот как я думал о растровом изображении.
Позвольте мне также сказать, что мы могли бы добавить дополнительное текстовое поле, в котором реальные даты (в реальном тексте) будут заполнены рутиной. Но для остальных это приложение будет основным интерфейсом, и редко пользователям придется смотреть на уродливую таблицу.
Могу ли я мне помочь?
Спасибо за все ваши ответы.
Leo
Привет, ребята, большое спасибо за ваши ответы, но я все еще немного смущен. Эта глупая «заметка» может применяться к одному или нескольким. Они могут быть диапазоном или распространением, не имеет значения. Я ищу метод, который не будет дублировать. Если у меня есть один столбец dateTime, это займет две таблицы. Мой клиент сумасшедший и хочет все это в одной таблице. Вот почему я подумал о растровом изображении, вместо того, чтобы иметь текстовое поле, в котором перечислены даты. –
Клиент не всегда прав. Спросите их, почему они хотят все в одной таблице. –
Если ваш контакт с клиентом знаком с моделированием данных, это должно быть очевидно для них, когда вы поднимаете вопрос о том, что бизнес-логика не поддерживает одно требование таблицы, которое они имеют учитывая вас. –