Какое соглашение требует, чтобы таблицы имели исключительные имена? Я всегда думал, что это были множественные имена.
пользователь А добавляется к таблице Users.
Этот сайт соглашается:
http://vyaskn.tripod.com/object_naming.htm#Tables
Этот сайт не соглашается (но я не соглашаюсь с ним):
http://justinsomnia.org/writings/naming_conventions.html
, Поскольку другие упомянули: это просто инструкции. Выберите соглашение, которое работает на Вас и Вашу компанию/проект и палку с нею. Переключение между исключительным и множественным или иногда сокращение слов и иногда не намного больше ухудшают.
Я думаю, что ключевой вопрос здесь: « Почему вы хотите сжимать URL-адреса? »
Пытаться сократить длинные URL-адреса в адресной строке?
Вам лучше сохранить исходный URL-адрес где-то (база данных, текстовый файл ...) вместе с хэш-кодом части, не относящейся к домену (MD5 в порядке). Затем у вас может быть простая страница (или какой-нибудь HTTPModule, если вы чувствуете себя броско) для чтения MD5 и поиска реального URL-адреса. Так работает TinyURL и другие.
Например:
http://mydomain.com/folder1/folder2/page1.aspx
Можно сократить на:
http://mydomain.com/2d4f1c8a
Использование библиотеки сжатия для этого не сработает . Строка будет сжата в более короткое двоичное представление, но преобразование ее обратно в строку, которая должна быть действительной как часть URL-адреса (например, Base64), сведет на нет любые выгоды, полученные вами от сжатия.
Хранение большого количества URL-адресов в в памяти или на диске?
Используйте встроенную библиотеку сжатия в System.IO.Compression или библиотеку ZLib, которая проста и невероятно хороша. Поскольку вы будете хранить двоичные данные, сжатый вывод будет прекрасен как есть. Вам нужно будет распаковать его, чтобы использовать как URL.
Base64) сведет на нет любые преимущества, которые вы получили от сжатия.Хранение большого количества URL-адресов в памяти или на диске?
Используйте встроенную библиотеку сжатия в System.IO.Compression или библиотеку ZLib, которая проста и невероятно хороша . Поскольку вы будете хранить двоичные данные, сжатый вывод будет прекрасен как есть. Вам нужно будет распаковать его, чтобы использовать как URL.
Base64) сведет на нет любые преимущества, которые вы получили от сжатия.Хранение большого количества URL-адресов в памяти или на диске?
Используйте встроенную библиотеку сжатия в System.IO.Compression или библиотеку ZLib, которая проста и невероятно хороша . Поскольку вы будете хранить двоичные данные, сжатый вывод будет прекрасен как есть. Вам нужно будет распаковать его, чтобы использовать как URL.
Оказалось, что этого было достаточно для наших текущих потребностей.Отказ от ответственности: это действительно минималистичный, «фиктивный» способ сделать это самостоятельно на Java и, очевидно, сохранить (и поддерживать) копию информации отображения LCID в вашем собственном кодовая база не очень элегантна. (С другой стороны, я также не хотел бы включать огромную библиотеку jar или делать что-нибудь слишком сложное только для этого простого сопоставления.) Поэтому, несмотря на этот ответ, не стесняйтесь публиковать более элегантные решения или существующие библиотеки , если вы знаете что-нибудь подобное.
Первое попадание в Google для "Java LCID" - это javadoc:
gnu.java.awt.font.opentype.NameDecoder
private static java.util.Locale getWindowsLocale (int lcid)
Отображает LCID Windows в языковой стандарт Java. Параметры: lcid - идентификатор языка Windows, локаль Java которого должна быть получена. Возврат: подходящий языковой стандарт или null, если сопоставление не может быть выполнено.
Я не знаю, где скачать эту библиотеку, но это GNU, так что найти ее не составит большого труда.
Для этого можно использовать GetLocaleInfo (при условии, что вы работаете в Windows (win2k +)).
Этот код C ++ демонстрирует, как использовать функцию:
#include "windows.h"
int main()
{
HANDLE stdout = GetStdHandle(STD_OUTPUT_HANDLE);
if(INVALID_HANDLE_VALUE == stdout) return 1;
LCID Locale = 0x0c01; //Arabic - Egypt
int nchars = GetLocaleInfoW(Locale, LOCALE_SISO639LANGNAME, NULL, 0);
wchar_t* LanguageCode = new wchar_t[nchars];
GetLocaleInfoW(Locale, LOCALE_SISO639LANGNAME, LanguageCode, nchars);
WriteConsoleW(stdout, LanguageCode, nchars, NULL, NULL);
delete[] LanguageCode;
return 0;
}
Не потребуется много работы, чтобы превратить это в вызов JNA . (Совет: используйте константы как int, чтобы найти их значения.)
Пример кода JNA:
Использование JNI немного сложнее, но управляемо для относительно тривиальной задачи.
По крайней мере, я хотел бы изучить использование собственных вызовов для создания вашей базы данных преобразования. Я не уверен, есть ли у Windows способ перечислить LCID, но что-то обязательно должно быть в .Net. На уровне сборки это не большая нагрузка. Я бы хотел избежать ручного ведения списка.