Добавить свойство Имена к элементу вашего члена:
Item itemMembers = doc.replaceItemValue("Members", members);
itemMembers.setNames(true);
Преобразует записи членов в действительные значения Имен, которые могут обрабатываться Domino для прав доступа.
Используйте поле даты. Начиная с полей даты поддержки SQL исходно, его легкое для фильтрации для определенных дат при помощи оператора Where.
Эти 2 поля имеют преимущество того, чтобы быть некоторыми что быстрее [...]
Ваш Запрос Select не является Вашим узким местом, таким образом, Вы не должны волноваться об этом. Удобочитаемость и прагматическая программа более важны, чем "воспринятое узкое место".
Я использовал бы поле даты, даже если Вам только требуются год и месяц, Вы ничего не теряете путем сбора всех данных. Как общепринятая практика я всегда собираю все данные, когда когда-либо возможно.
Я использовал бы отдельные столбцы, главным образом потому что это будет допускать лучшее использование индексов. Например, я не думаю, что индекс на седле даты и времени поможет, если Вы будете просто обеспокоены данными с данного месяца (не год).
Если нет преимущество реального исполнения хранения года и месяца отдельно, я придерживался бы даты. Относительно индексации, если имеют Вас два столбца, необходимо будет создать индекс на комбинации столбцов, а не один для столбца даты. Дата будет преобразована внутренне в длинное значение, таким образом, требуемое пространство памяти не будет действительно проблемой.
Кроме того, думайте о возможной боли обслуживания с двумя полями. У Вас были бы поля на два дб, возможно два поля на объекте или потребности создавать/анализировать месяц и год к/от дб. Сохраните это простым с датой и позвольте DB отслеживать Вашу целостность данных.
Я работаю с данными как Вы описанный - даты истечения срока, где день всегда является прошлым днем месяца, таким образом, нам только требуются месяц и год. Мы храним их как дату.
Хотя не сразу использования Вам, IBM Informix Динамический Сервер поддерживает тип:
DATETIME YEAR TO MONTH
Это хранит точно, что Вы хотите - год и месяц. Это имеет свое использование. Семейство ДАТ И ВРЕМЕН типов включает много других типов, которые иногда имеют их использование - и некоторые, которые имеют предельную полезность, при этом каноническим примером является МЕСЯЦ ДАТЫ И ВРЕМЕНИ К МИНУТЕ. (Оборотная сторона типа является подробными нотациями, должен был управлять им, но существует много операций, которые могут быть сделаны на любых из типов ДАТЫ И ВРЕМЕНИ.)
Во многих DBMS можно поместить ограничения на столбцы, поэтому если бы Вы идете с подходом на два столбца, Вы поместили бы a CHECK(month_column BETWEEN 1 AND 12)
ограничение на столбец, чтобы гарантировать, что пользователь не поместил недопустимое значение в таблицу. Вы могли бы даже применить ограничение на столбец года также.
Кроме того, некоторый DBMS позволяют Вам создавать пользовательские типы, и тип месяца года довольно прост, когда они идут. Детали зависят от DBMS, конечно.
Я сохранил бы столбец даты и времени и два вычисляемых столбца с месяцем и годом (индексированными, конечно). Имейте мой пирог и съешьте его также :)
Если Вы будете ожидать запросы формы, "дай мне все строки в июле, независимо от года", то их будет немного легче записать с отдельными столбцами месяца и года. Отдельный индекс для столбца месяца должен сделать это мгновенным.
Иначе я пошел бы для единственного столбца даты: простая, понятая, встроенная проверка и работа математических функций даты. Ваше единственное беспокойство - то, что кто-то плохо знакомый с дизайном задастся вопросом, почему все всегда происходит на первом из месяца.
Существует еще одна причина использовать отдельные столбцы месяца и года, с которыми я столкнулся: когда месяц не известен. Я использовал это для приложений, которые позволяют предстоящему событию быть "когда-то в 2009". В этом случае использование ПУСТОГО УКАЗАТЕЛЯ в столбце месяца решает проблему приятно. Нет никакого простого способа сделать это со столбцом типа даты, если Вы не придумываете некоторый ужасный взлом как средства 2-го января, месяц неизвестен.
Думайте об этом этот путь: Однажды кто-то приедет к Вам с требованием для улучшения приложения со способностью к не, только сохраняют год и месяц, но также и день. Вы затем добавили бы дополнительный столбец в течение дня? И затем, следующая вещь, они могли бы хотеть, чтобы Вы также сэкономили время.
Как легкий это должно было бы улучшить функциональность, если у Вас есть отдельные столбцы в течение года/месяца/дня? Если у Вас есть единственный столбец даты?
Я пошел бы для столбца даты поэтому одного.
Если бы Вы собираетесь выполнить много операций в день поле затем, я разорвал бы его в отдельные столбцы и соглашение с подтверждением правильности данных или в ограничении таблицы или в DAL.
Например, создавая отчеты по продажам днем, месяц, год намного более эффективен, когда поля разделяются. Так как причина - это, Вы не должны использовать функции даты и времени для разрывания даты группировки.
Если это будет что-то как день рождения, где я мог бы запросить на нем время от времени затем, я не буду волноваться об этом и просто оставлять его в поле даты.
Вероятно, не потому что самый маленький тип данных datetime в SQL Server (Microsoft) smalldatetime
который 4 байта длиной. При необходимости только в месяце и году затем, Вам нужны 1 байт в течение месяца и 2 байта в течение года.