Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / многопользовательские базы / 11 сообщений из 11, страница 1 из 1
19.01.2004, 10:09
    #32379799
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
Уважаемые гуру!
Подскажите пожалуйста, как правильно реализовать
на А97 многопользовательскую базу.

Ясно что нужно разделить mdb-данные и mdb- интерфейс.

А как сделать удобной работу с выборкой по любым условиям
на основе встроееных справочников?
(есть данные, есть их привязка к табл-справочникам,
юзер хочет отчет:
-по всему справочнику - без проблем,
-по выбранной ветке - достаточно Where по условию в списке
--а как по нескоольким выбранным?

напрашивается вариант с временной таблицей в mdb-интерфейсе каждого клиента,
в которой юзер поставит галки по нужным ему разделам - и фильтр готов

тогда как быть с пунктом "все?" выставлять все галки программно?
или переписывть исходник запроса - с join и без?

кроме того при каждом обновлении справочника нужно следить
чтобы он обновлялся и на клиенте?

кто сталкивался, какие еще проблемы были, как решали?
Спасибо!
...
Рейтинг: 0 / 0
19.01.2004, 11:27
    #32379924
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
Примерно так:
Делаешь таблицы настроек.
Поля: юзернейм (можно не делать, если будет локально, или привязать к имени машины) / раздел справочника / показ (логический)
Юзеру даешь формочку с галочками, где он может извращаться.
А запрос джойнит справочники с таблицами настроек.
...
Рейтинг: 0 / 0
19.01.2004, 14:00
    #32380266
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
С этим понятно

не понятно как лучше сделать обновление "интерфейсных справочников" (локально лежащих у каждого юзера) так
чтобы они соответствовали основным данным...

залез юзер в справочник основной, поменял что-то
полез в локальный фильр - а там новых данных нет!!!

Что делать?

Неужели так мало кто мультиюзер делал?...........
...
Рейтинг: 0 / 0
19.01.2004, 16:55
    #32380709
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
и тишина....

или неправильно вопрос задаю
или все в однопользователях сидят
или не нужны сложные выборки а только "1" или "всё"?
...
Рейтинг: 0 / 0
19.01.2004, 17:50
    #32380789
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
Видимо, никому неохота такого геморроя, как разбираться со справочниками на каждом локальном компе. Если скорость позволяет - можно хранить все в одной базе, если же нет - добро пожаловать на "клиент-сервер".
...
Рейтинг: 0 / 0
19.01.2004, 17:58
    #32380802
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
Уважаемый AlexJuice !!!!

Тогда подскажите пожалуйста как это грамотно реализовать на "серверной" стороне самой базы?...
Никак не пойму структуру связи таблицы с полями юзер+галка с таблицами-справочниками...
...
Рейтинг: 0 / 0
19.01.2004, 18:08
    #32380824
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
Поскольку структуру не знаю, расскажу на примере (упрощенном) своей.
Допустим, есть справочник товаров (Tovar) и справочник отделов (Tree).
Есть также промежуточная таблица, реализующая связь "многие-ко-многим" (tree_link), а также таблица настроек юзеров (user_tree: юзер / отдел / галка (показывать-не показывать)).
В справочнике есть подчиненная форма, где юзер может тыкать в эти самые галки. При этом справочник товаров обновляется. А показываемые юзеру товары берутся из джойна таблиц:

...FROM dbo.Tovar t
INNER JOIN (SELECT DISTINCT dbo.tree_link.idt FROM dbo.tree_link
INNER JOIN dbo.user_tree ON dbo.tree_link.idtree = dbo.user_tree.id_tree
AND dbo.user_tree.mark = 1 AND dbo.user_tree.uid = SUSER_SNAME()) l ON t.idt = l.idt

Как определять текущего юзера - об этом недавно говорили. Можно еще определять по сетевому имени компа (узнается через API).
...
Рейтинг: 0 / 0
20.01.2004, 10:59
    #32381339
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
Ага, спасибо!

То есть user_tree связана с tree по полю ОТДЕЛ
и если юзер жмакнет по галке в user_tree
он автоматом добавит в эту таблицу запись вида
username отдел галка

А как это реализовано?
отдел добавится сам благодаря связи,
имя юзера получить могу, а добавить-то его как?..
...
Рейтинг: 0 / 0
20.01.2004, 14:50
    #32381768
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
Ну примерно так (если предположить, что поле mark имеет по дефолту 0):

INSERT INTO user_tree (uid, tree)
SELECT CURRENT_USER, idtree
FROM Tree

Это можно делать при заведении нового юзера.
(опять же повторю, что функция определения юзера здесь условна)
...
Рейтинг: 0 / 0
20.01.2004, 14:51
    #32381771
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
ЗЫ. А при жмаканьи по галкам, соответственно, таблица будет обновляться, и добавлять ничего не потребуется.
...
Рейтинг: 0 / 0
20.01.2004, 18:06
    #32382203
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
многопользовательские базы
ну никак немогу воспроизвести структуру такой базы и такого поведения....
с галочками без юзеров получается, а с юзерами никак....
люди памагити плиз кто как делал?!!!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / многопользовательские базы / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]