Склонение ФИО (постановка)
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (→Ссылки по теме) |
SYSDBA (обсуждение | вклад) (→Идентификаторы падежей для русского языка) |
||
| Строка 39: | Строка 39: | ||
|L | |L | ||
|} | |} | ||
| + | |||
| + | === Пример использования === | ||
| + | |||
| + | Пусть в таблице [[gd_contact]] мы имеем запись: | ||
| + | |||
| + | ID NAME | ||
| + | ========================================== | ||
| + | 20000001 Иванов Иван Иванович | ||
| + | |||
| + | а в таблице [[gd_good]]: | ||
| + | |||
| + | ID NAME | ||
| + | ========================================== | ||
| + | 20000002 Мыло | ||
| + | |||
| + | Тогда, в таблице [[gd_multiname]] могут быть следующие записи: | ||
| + | |||
| + | REFID LANGID CASEID NAME | ||
| + | ============================================================= | ||
| + | 20000001 RU D Иванову Ивану Ивановичу | ||
| + | 20000001 RU G Иванова Ивана Ивановича | ||
| + | 20000001 BE N Іваноў Іван Іванавіч | ||
| + | 20000002 EN NULL Soap | ||
=== Ссылки по теме === | === Ссылки по теме === | ||
Версия 18:36, 29 июля 2008
Предлагается решить проблемы склонения имен по падежам и хранения имен на разных языках следующим образом:
Создаем таблицу:
CREATE TABLE gd_multiname ( refid dintkey, langid CHAR(20) NOT NULL, caseid CHAR(1) NOT NULL, name dname, PRIMARY KEY gp_pk_multiname (refid, langid, caseid) )
Эта таблица будет хранить название объекта с идентификатором refid, на языке langid в падеже caseid.
Идентификаторы падежей для русского языка
| Название | Идентификатор |
| Именительный | N |
| Родительный | G |
| Дательный | D |
| Винительный | A |
| Творительный | B |
| Предложный | L |
Пример использования
Пусть в таблице gd_contact мы имеем запись:
ID NAME ========================================== 20000001 Иванов Иван Иванович
а в таблице gd_good:
ID NAME ========================================== 20000002 Мыло
Тогда, в таблице gd_multiname могут быть следующие записи:
REFID LANGID CASEID NAME ============================================================= 20000001 RU D Иванову Ивану Ивановичу 20000001 RU G Иванова Ивана Ивановича 20000001 BE N Іваноў Іван Іванавіч 20000002 EN NULL Soap