|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Nickolay Kondrashov 2:5020/400 15 May 2002 10:17:34 To : Serge Sapozhnikov Subject : Re: id ? -------------------------------------------------------------------------------- Привет! > Стандартная проблема в распределенных db. Решается добавлением nodeid. Один > из вариантов - char-поле (если нет противопоказаний при использовании char в > качестве ключей) со структурой nodeid.objid. > В объединенной базе запросы по отдельному узлу будут выглядеть так: > > select ... from ... > where ID like 'xxxx.%' and <ограничения по естественным атрибутам> > > где xxxx - nodeid конкретного филиала. Фактически, это то же самое что и выделение разных диапазонов для автоинкремента. Возьми ключ длиной int(12) и к каждому ид в запросе прибавляй какое-нибудь значение характерное для филиала. String sql="select * from table where id=?"; long NodeID=30000000000000L; ... ... PreparedStatement ps=conn.prepareStatement(sql); ps.setLong(1,objId+NodeID); Работать должно быстрее чем варианты с двумя полями, ГУИДами или like'ами в запросах, т.к. индекс не очень большим получится. Удачи. -- С уважением, Hиколай Кондрашов --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/657766f926a6.html, оценка из 5, голосов 10
|