powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Исключения из правил
7 сообщений из 32, страница 2 из 2
Исключения из правил
    #36911368
Фотография Taper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher, мой вам совет - берите Аксесс в зубы и в профильный подфорум здесь же. Народ там отзывчивый, может и сам подключусь. Приветствуются конкретные вопросы по конкретным данным.
Другой вариант - наймите фрилансера - типа срочная задача разработать структуру БД. Если что, можете и ко мне обратиться.
...
Рейтинг: 0 / 0
Исключения из правил
    #36912227
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher,

Вы доставляете все больше радости читателям Ваших сообщений.
1. Оригинально расположены внешние ключи. Задумайтесь о том, как данные попадут в эти таблицы, если они циклически завязаны друг на друге (конечно, если связи обязательные)
2. А сочетание русских и латинских букв в названиях столбцов - новейшее слово в отечественной проктостоматологии :)
3. авторДа, и делать буду в Access97, а то там компьютеры очень старые, да и книжка у меня только про него нашлась.Оба аргумента неотразимы. Второй так просто железобетонный.
4. авторПросто нам выделили большой грант на автоматизацию документооборота министерства, а в понедельник приезжает начальник, и нужно чтоб все готово было.Аффтар, жги ищо :)
5. "Отзывчивый народ" из Access с нетерпением ждет Вас. Ога, вперед и с песнею. И с кошельком наперевес. ;)
...
Рейтинг: 0 / 0
Исключения из правил
    #36913742
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L,

есть мнение , что данной схемой и перечисленными бд - автор глумился)
...
Рейтинг: 0 / 0
Исключения из правил
    #36914433
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LЗадумайтесь о том, как данные попадут в эти таблицы, если они циклически завязаны друг на друге (конечно, если связи обязательные)

По остальной части схемы, стало быть, возражений не поступило :-) Ну уж если говорить о циклических ключах, то на это есть DEFERRABLE CONSTRAINTS.

Озверин
есть мнение , что данной схемой и перечисленными бд - автор глумился)

Я не хотел бы выражаться столь категорично, но боюсь, что Вы описали ситуацию исчерпывающим образом :-)
...
Рейтинг: 0 / 0
Исключения из правил
    #36914506
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherОзверин
есть мнение , что данной схемой и перечисленными бд - автор глумился)

Я не хотел бы выражаться столь категорично, но боюсь, что Вы описали ситуацию исчерпывающим образом :-)А, искрометный юмор! Понятно... только самому автору.
...
Рейтинг: 0 / 0
Исключения из правил
    #37074188
laney
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вернусь к теме, которую изложил автор поста.

Очевидно, что у нас есть пользователи (типы пользователей - Вождь, Шаман и т.д.) и объекты (типы объектов - Закон, Постановление, Указ....). Если давать права пользователям на объекты, то действительно получается декартово произведение. Для того, чтобы его не было нужно ввести промежуточную развязывающую сущность (Роли или Группы).

Между ТипПользователя -- Роль отношение М:М
Между Роль -- Тип документов отношение тоже М:М

После этого все просто - Вождь входит в группу Издатель Законов - этой группе даны права на редактирование всех типов документов (в т.ч. и законов).
Остальные пользователи входят в группу (Обычные пользователи) - этой группе даны права на редактирование всех типов документов кроме законов

Решение универсальное - и декартового произведения удалось избежать.
...
Рейтинг: 0 / 0
Исключения из правил
    #37076584
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherИнтересен опыт: сталкивались ли вы с подобными случаями, и как обходили?
Я для подобных случаев сформулировал "принцип минимальности строк". То есть сделал бы примерно так:

Код: plaintext
1.
2.
3.
4.
create table "Допустимые типы документов от издателей" (
  "ид типа документа" integer not null references "Тип документа" ("ид типа документа"),
  "ид типа издателя" integer refrences "Тип издателя" ("ид типа издателя"), -- null - любой издатель
  "разрешено" boolean not null, -- true - разрешено для этого издателя, false - запрещено для этого издателя
  constraint "uk_Допустимые типы документов от издателей" unique ("ид типа документа", "ид типа издателя"));

Преимущество подхода в том, что он позволяет описывать сложные конфигурации минимальным количеством строк, каждая из которых имеет смысл. То есть, допустим, "приказ" могут выпускать "все", "закон" - "вождь может", "все не могут", а "расходный ордер" - "все могут, палач не может". Как следствие, конфигурацию легко редактировать, в ней не допускается тупых ошибок и добавление новых записей в справочники легко, а часто и вовсе автоматически отражается в конфигурации.

Ну а значение режима легко определяется запросом вида ... where id = :id or id is null order by id nulls last.
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Исключения из правил
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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