powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нарушает ли такая таблица 3НФ?
12 сообщений из 12, страница 1 из 1
Нарушает ли такая таблица 3НФ?
    #37619650
MozgC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,

Есть табличка
[ Primary Key, DateTime Time, bool DoAction1, bool DoAction2 ]

Т.е. в определенное время нужно выполнить либо первое действие, либо второе. Получается что есть функциональные зависимости
F(DoAction1) = DoAction2
а именно
F(false) = true
F(true) = false

Таким образом, такая таблица нарушает 3НФ. Верно?
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37619742
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в один момент должно выполняться более одного действия, то надо содать
Таблицу запусков по времени

Таблицу действий, выполняемых при запуске
вторая связана с первой как 1:М
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37619830
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozgC,
Скорее всего, верно, поскольку, например, DoAction2 транзитивно зависит от ключа, но сама ни в какой ключ не входит.
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37620197
MozgC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoMozgC,
Скорее всего, верно, поскольку, например, DoAction2 транзитивно зависит от ключа, но сама ни в какой ключ не входит.
Другое дело что с практической точки зрения по-моему проще сделать такую табличку, чем разделять на несколько таблиц.
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37620495
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozgCТаким образом, такая таблица нарушает 3НФ. Верно?
Такая таблица нарушает здравый смысл. Поскольку должны быть не doAction1, doAction2, а actionNum check in (1,2). А какой НФ это регулируется - уже дело десятое.
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37621398
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozgCДругое дело что с практической точки зрения по-моему проще сделать такую табличку, чем разделять на несколько таблиц.
Скорей всего, это не друголе дело, а одно и то же: проектировщик стоит перед выбором альтернатив. Он может выбрать как иму "проще сделать табличку" но, к примеру, как потом компенсировать аномалии БД и контролировать избыточность, и между тем как сложнее сделать несколько табличек, но иметь другие буносы в види более оптимальной схемы в плане аномалий, избыточности.
Т.е. проектировщику приходится проявлять обеспокоенность по поводу рисков увелиения скрорости роста энтропии програмного обеспечения и как следствие, удорожания сопровождения и соекращения ЖЦ ИС. Ну и боусы - любой с базовы образованием по БД быстро в БД напишет запросы, не опасаясь всяких там неожиданностей.
Сущекствуют, к примеру, и крайние точки зрения. Например, "Плохо спроектированную БД нельзя компенсировать никакими програмными ухищрениями".

Но риски на то и риски что могут и не наступить. Поэтому есть агрессивный подход и консервативный. Решать проектировщику что оптимальнее для него.
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37621471
MozgC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
Вообще у меня такой таблицы нет (на самом деле все немного сложнее и там надо разделять на несколько таблиц, потому что у разных actions еще разные параметры), поэтому вопрос чисто теоретический на понимание нормальных форм. Повторюсь, прав ли я что такая таблица нарушает 3НФ?
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37621804
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozgC Повторюсь, прав ли я что такая таблица нарушает 3НФ?
Ну тоже повторюсь - скорее всего, более чем прав.
А то что Вам предлагали коллеги - это варианты схем хде не раушена, скорее всего, 3НФ.
Зачем же Вы этого не видите?
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37623346
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozgCправ ли я что такая таблица нарушает 3НФ?Нарушает, нарушает. Значение в одном из полей зависит от значения в другом поля, которое не является ключом, но зависит от ключа. Налицо транзитивная зависимость, которой не должно быть по определению. Вам же vadiminfo уже подсказал.
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37623352
__amg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MozgC...
F(false) = true
F(true) = false
...

при такой зависимости нужен только один bool-столбец - значение второго ведь вычисляется как (not DoAction1).
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37623475
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__amgпри такой зависимости нужен только один bool-столбец - значение второго ведь вычисляется как (not DoAction1).
Кому то нужен, а кому-то, может, совсесм не нужен. БД предназеначена для многих прог, юзеров и т.д (это не данные чисто для кода клиентской проги). А в случае одного столбца, нельзя исключить рисков дополнительных усилий при интерпритации данных. Т.е. мы БД создаем для упрощения инфы, а в этом можно увидеть некое усложнение. Кого-то интересует, к примеру, тока DoAction2 и больше ниче знать вроде и не нуно, а тут вдруг придется искать его в одной колонке с DoAction1.
Возможно, в этом кто-то увидит ухудшения структурного соотвествия БД и ПО: в ПО есть DoAction1 и DoAction2, а в БД тока одна колонка. И отнесет это к чрезмерно агресссивному подходу при проектировании БД.
...
Рейтинг: 0 / 0
Нарушает ли такая таблица 3НФ?
    #37624805
MozgC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoКому то нужен, а кому-то, может, совсесм не нужен. БД предназеначена для многих прог, юзеров и т.д (это не данные чисто для кода клиентской проги). А в случае одного столбца, нельзя исключить рисков дополнительных усилий при интерпритации данных. Т.е. мы БД создаем для упрощения инфы, а в этом можно увидеть некое усложнение. Кого-то интересует, к примеру, тока DoAction2 и больше ниче знать вроде и не нуно, а тут вдруг придется искать его в одной колонке с DoAction1.
Возможно, в этом кто-то увидит ухудшения структурного соотвествия БД и ПО: в ПО есть DoAction1 и DoAction2, а в БД тока одна колонка. И отнесет это к чрезмерно агресссивному подходу при проектировании БД.
Согласен.
Если уж так охото избавиться от "неправильных 2х колонок", то лучше сделать вторую таблицу Actions, а в исходной хранить ActionID. В БД будет на 1 табличку больше, зато понятнее.
Ну а на самом деле в моей реальной задаче у Action'ов могут быть определенные параметры/опции и поэтому для каждого Action'а правильнее сделать свою таблицу, в колонках которой будут эти дополнительные параметры.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нарушает ли такая таблица 3НФ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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