powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как можно автоматизировать труд разроботчика?
7 сообщений из 7, страница 1 из 1
Как можно автоматизировать труд разроботчика?
    #32035037
dj Senja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим нужно создать 20 однотипных таблиц с разными названиями. Как можно было бы автоматизировать процесс, если считать, что имена таблиц перечислены в неком списке?
...
Рейтинг: 0 / 0
Как можно автоматизировать труд разроботчика?
    #32035039
Vit!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проще всего через программу написанную на любом языке...
...
Рейтинг: 0 / 0
Как можно автоматизировать труд разроботчика?
    #32035040
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может лучше создать одну таблицу - свод всех этих однотипных таблиц, у которой будет поле, отражающее их отличие?
Поверьте, чем меньше таблиц, тем легче логика работы.
А нужно ли это поле? А может все можно в одну таблу вместить и разбираться по каким-то другим признакам.

Извините, что не точно в тему. Но многие задачи решаются после их уточнения и переформулировки.
...
Рейтинг: 0 / 0
Как можно автоматизировать труд разроботчика?
    #32035042
dj Senja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>А может лучше создать одну таблицу - свод всех этих >однотипных таблиц, у которой будет поле, отражающее >их отличие?
Мне кажется, что в моем случае так не получится. Представь, что у нас есть однотипные объекты, скажем проданные 1товары, но эти товары продаются в разных магазинах - в этом собственно и отличие. Теперь есть несколько пользователей базы, которые должны получать доступ к записям, но только тем, которые относятся к определнным магазинам. Честно говоря, я не знаю как в MSSQL разделить доступ к разным записям одной таблицы. Поэтому, то и приходится однотипные записи, но из разных магазинов, размещать в разных таблицах и выдавать пользователям права на эти таблицы.
Я бы с удовольствием разместил все в одной таблице, но не знаю как разграничить доступ. Если кто знает, как решить такую проблему, расскажите!
Спасибо.
...
Рейтинг: 0 / 0
Как можно автоматизировать труд разроботчика?
    #32035048
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, я не знаю как в MSSQL разделить доступ к разным записям одной таблицы.

Упс... А VIEW для чего придумали? Хошь - параметрические (тогда секюрити может пострадать), хошь именные на каждый магазин(юзер). А того кто в БД создает 20 однотипных таблиц я бы порвал как тузик грелку если бы мне за ним надо было бы потом эту систему сопровождать.

Почитай побольше Дейта - он сеет разумное, доброе, вечное...
...
Рейтинг: 0 / 0
Как можно автоматизировать труд разроботчика?
    #32035235
Dominic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то я делал так:
В структуре таблицы помещал доступное только owner`у поле (например, userid INT), которое по умолчанию заполнялось результатом выполнения функции USER_ID(). А интерфейс к таблице сделал через хранимую процедуру с текстом:

SELECT * (кроме поля userid)
FROM Table1
WHERE userid = USER_ID()

Мне кажется, что элегантно...
...
Рейтинг: 0 / 0
Как можно автоматизировать труд разроботчика?
    #32035249
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это самый элементарный случай. Способов решения тьма-тьмущая.
Применим и метод dj Senja, и метод Dominic.

Можно еще и так.

Создаем таблицу UsersRights

UserID int
UserMagazinID int

Заполняем ее примерно таким образом
UserID UserMagazinID
1 1
1 2
1 3
2 1
3 2
3 3

То есть userID=1 может работать с магазинами 1,2,3, UserID=2 - только с магазином 1.

Запросы от User'oв будут выглядеть примерно так -

Код: plaintext
1.
2.
Select * from table 
where table.MagazinID in 
(select UserMagazinID from UsersRights where UserID=user_id())

Это в случае, если пользователь должен работать сразу со всеми разрешенными ему магазинами. Но это не есть хорошо. Лучше все-таки, что бы в каждый момент времени пользователь работал с одним магазином. Меньше будет путаницы. В этом случае, пользователю надо предоставить меню выбора, основанного на запросе

Код: plaintext
1.
2.
Select MagazinName from Magazins
where Magazins.MagazinID in 
(select UserMagazinID from UsersRight where UserID=user_id())

Ну и далее, наверное, понятно.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как можно автоматизировать труд разроботчика?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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