Склонение ФИО (постановка)
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (→Ссылки по теме) |
SYSDBA (обсуждение | вклад) (→Пример использования) |
||
| Строка 42: | Строка 42: | ||
=== Пример использования === | === Пример использования === | ||
| − | Пусть в таблице [[ | + | Пусть в таблице [[GD_CONTACT]] мы имеем запись: |
ID NAME | ID NAME | ||
| Строка 48: | Строка 48: | ||
20000001 Иванов Иван Иванович | 20000001 Иванов Иван Иванович | ||
| − | а в таблице [[ | + | а в таблице [[GD_GOOD]]: |
ID NAME | ID NAME | ||
| Строка 54: | Строка 54: | ||
20000002 Мыло | 20000002 Мыло | ||
| − | Тогда, в таблице [[ | + | Тогда, в таблице [[GD_MULTINAME]] могут быть следующие записи: |
REFID LANGID CASEID NAME | REFID LANGID CASEID NAME | ||
Версия 18:38, 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