В начале 2013 года проект ICU, поддерживаемый IBM, является довольно хорошим ответом на это.
ICU - это «полная, портативная библиотека Unicode, которая близко отслеживает отраслевые стандарты». Для конкретной задачи сравнения строк объект Collation делает то, что вы хотите.
Проект Mozilla принял ICU для интернационализации в Firefox в середине 2012 года; обсуждение технических вопросов, включая вопросы о системах сборки и размере файла данных, можно найти здесь:
Я бы сохранил дату первого события, а затем интервал для каждого последующего события, как в большинстве приложений-календарей. В этом случае вы бы структурировали его так:
first_event | interval | interval_unit
-------------+--------------------------
2009-01-01 | 6 | 'month'
2009-02-01 | 1 | 'year'
К сожалению, MySQL не имеет типа данных INTERVAL
, поэтому потребуются два столбца и небольшая пост-обработка, но я думаю, что это наиболее гибкий подход к решению проблемы.
PL / SQL
- это проприетарный процедурный язык, используемый Oracle
PL / pgSQL
- это процедурный язык, используемый PostgreSQL
TSQL
- проприетарный процедурный язык, используемый Microsoft в SQL Сервер.
Процедурные языки разработаны для расширения возможностей SQL, при этом они могут хорошо интегрироваться с SQL. Добавлено несколько функций, таких как локальные переменные и обработка строк / данных. Эти функции делают язык Тьюринг-полным.
Они также используются для написания хранимых процедур: фрагментов кода, находящихся на сервере, для управления сложными бизнес-правилами, которыми трудно или невозможно управлять с помощью чисто основанных на наборах операций.
Процедурные языки разработаны для расширения возможностей SQL, при этом они могут хорошо интегрироваться с SQL. Добавлено несколько функций, таких как локальные переменные и обработка строк / данных. Эти функции делают язык Тьюринг-полным.
Они также используются для написания хранимых процедур: фрагментов кода, находящихся на сервере, для управления сложными бизнес-правилами, которыми трудно или невозможно управлять с помощью чисто основанных на наборах операций.
Процедурные языки разработаны для расширения возможностей SQL, при этом они могут хорошо интегрироваться с SQL. Добавлено несколько функций, таких как локальные переменные и обработка строк / данных. Эти функции делают язык Тьюринг-полным.
Они также используются для написания хранимых процедур: фрагментов кода, находящихся на сервере, для управления сложными бизнес-правилами, которыми трудно или невозможно управлять с помощью чисто основанных на наборах операций.
SQL
язык для общения с
база данных. Это позволяет вам выбирать данные,
изменять и создавать объекты базы данных
(например, таблицы, представления и т. д.), измените
настройки базы данных. PL-SQL
процедурный язык программирования (со встроенным SQL) T-SQL
(процедурные) расширения для SQL используются
по SQL Server