|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Serge Sapozhnikov 2:4635/4.34 15 May 2002 10:38:23 To : Nickolay Kondrashov Subject : id ? -------------------------------------------------------------------------------- 15 May 02 10:17, you wrote to me: >> качестве ключей) со структурой nodeid.objid. >> В объединенной базе запросы по отдельному узлу будут выглядеть >> так: select ... from ... where ID like 'xxxx.%' and <ограничения по >> естественным атрибутам> где xxxx - nodeid конкретного филиала. NK> Фактически, это то же самое что и выделение разных диапазонов для NK> автоинкремента. Возьми ключ длиной int(12) и к каждому ид в запросе NK> прибавляй какое-нибудь значение характерное для филиала. NK> String sql="select * from table where id=?"; NK> long NodeID=30000000000000L; NK> ... NK> ... NK> PreparedStatement ps=conn.prepareStatement(sql); NK> ps.setLong(1,objId+NodeID); Hе совсем то же самое. Hа практике почему-то char-поле использовать удобнее - нет ограничения на длину (объявил домен как varchar(128) - и хранится компактно и не нужно ограничивать себя идиотскими диапазонами). Да еще можно и естественные названия филиалов использовать, а не заглядывать в табличку когда нужно ручной запрос выполнить. Да и более чем 2 уровня, если нужно, использовать легко - практически аналог URI. NK> Работать должно быстрее чем варианты с двумя полями, ГУИДами или NK> like'ами в запросах, т.к. индекс не очень большим получится. Так должно или проверял?:-) Лично я на скорость внимание обращаю далеко не в первую очередь, удобство использования и возможности расширения для меня куда важнее. Хотя проверить, если скорость критична, перед выбором способа, день-два работы. Good luck, Serge --- [frogbot@ukr.net] [ICQ #11038130] * Origin: DM4 (2:4635/4.34) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/27863ce23e37.html, оценка из 5, голосов 10
|