Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть табличка 1) ID (number) 2) Лог поле (bool) 3) Поле 3 (Text) 4) Поле 4 (Text) If "Лог поле" = True then Поля 3 и 4 не заполняються. Это вроде как противоречит 3НФ (Т.к. Неключивые поля зависят от другого неключевого поля ). Как лучше сделать? ------------------ Two of the most famous products of Berkeley are LSD and Unix. I don't think that this is a coincidence ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 16:49 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
FlashbackВсем привет. Есть табличка 1) ID (number) 2) Лог поле (bool) 3) Поле 3 (Text) 4) Поле 4 (Text) If "Лог поле" = True then Поля 3 и 4 не заполняються. Это вроде как противоречит 3НФ (Т.к. Неключивые поля зависят от другого неключевого поля ). Как лучше сделать? Кхм , просто убрать поле Лог поле if (Поле3 is null) and (Поле4 is null) значить это не лог :) А вообще странная табличка, хотелась бы узнать какими ирациональными путями вы к ней прейшли Или у вас сначало инсертиться эта табличка а потом апдетиться в зависимости от Поле лог ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 16:57 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
Одна таблица - с одним полем ID, другая - {ID, Поле 3, Поле 4}. Во второй таблице данные только по требуемым ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 16:57 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
а я бы сделал так ТАбл1(ид1, лог), Таб2(ид2, ид1, текст) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 19:26 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
авторЭто вроде как противоречит 3НФ (Т.к. Неключивые поля зависят от другого неключевого поля ). Нет, не противоречит. Здесь надо вспомнить определение функциональной зависимости полей. A->B, если при одних и тех же значениях A в записи присутствуют одни и те же значения B У тебя при [Лог поле ]=False значения [Поле 3] и [Поле 4] могут быть каким угодно. То есть нет функциональной зависимости полей, значит нет нарушения 3НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 06:21 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
Можно просто триггерами на INSERT и UPDATE, при соответствующем условии, занулять эти поля... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 06:35 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
А я бы сделал так: id identity, text1 text, text2 text И все. Если текстовые поля пустые, то зачем запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 07:57 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
mir У тебя при [Лог поле ]=False значения [Поле 3] и [Поле 4] могут быть каким угодно. То есть нет функциональной зависимости полей, значит нет нарушения 3НФ. Превернем выражение: Log=f(Field3,Field4) - налицо вункциональная зависимость ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2004, 15:01 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
Конечно поле Log можно генерировать обычным case-ом, но если вдруг понадобится тянуть из таблички только записи где Log=0 или только где Log=1 (эт смотря как вы ее юзаете). То может понадобиться индекс (Id,Log) - для производительности таких запросов. И нет ничего страшного в нарушении 3НФ. Никто за это к стенке не поставит. А заполнять поле Log действительно проще в триггере BEFORE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2004, 15:07 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
FlashbackВсем привет. Есть табличка 1) ID (number) 2) Лог поле (bool) 3) Поле 3 (Text) 4) Поле 4 (Text) If "Лог поле" = True then Поля 3 и 4 не заполняються. Это вроде как противоречит 3НФ (Т.к. Неключивые поля зависят от другого неключевого поля ). Как лучше сделать? Оставить как есть, а всем говорить, что это зарезервировано на будущее. Это не шутка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2004, 23:59 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
gardenmanПревернем выражение: Log=f(Field3,Field4) - налицо вункциональная зависимость Все верно. Здесь поле Лог совершенно излишнее, поскольку его значение четко выводится из значений Field3,Field4. Если они IS NULL, то Log= True, иначе = False. Таки да, нарушена 3НФ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 07:45 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
Чтобы привести к 3НФ надо основную таблицу разбить на две. Существуют 2 варианта - две равноценные таблицы в которые выносишь все что не имеет неключевых зависимостей (У тебя скорее всего именно такой случай) - Одна таблица главная, а вторая подчиненная (содержит ключевые поля главной таблицы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 18:51 |
|
||
|
Таблица неуд 3НФ
|
|||
|---|---|---|---|
|
#18+
Flashback If "Лог поле" = True then Поля 3 и 4 не заполняються. Эта фраза главная! То есть Field3(Field4) = f(LOG), а не Log=f(Field3,Field4) Причем и это функциональной зависимостью можно назвать как-то с натяжкой... От Log зависит только факт заполнения Field3 и Field4, а не их содержимое Хотя, надо уточнить, что конкретно хотел автор получить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2004, 16:27 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=166&tid=1546359]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 397ms |

| 0 / 0 |
