powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / проектирование таблицы
11 сообщений из 11, страница 1 из 1
проектирование таблицы
    #34916606
AlS72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Посоветуйте как правильно сделать.
Eсть таблица table1 и в ней некий столбец field1. Значение field1 это id(PK) некоего справочника.
Соответственно хочу создать foreign key,
но таблица в этом поле должна хранить еще значение ВСЕ(0) .
Т.е я должен добавить 'ВСЕ' в справочник, но что-то мне это не нравится,
или все нормально? Как вообще по-правильному когда в таблице хранится
что-то вроде группировки значений?
...
Рейтинг: 0 / 0
проектирование таблицы
    #34916806
minva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как вообще по-правильному когда в таблице хранится
что-то вроде группировки значений?

В некоторых случаях, когда, например, легче хранить значение, чем каждый раз его пересчитывать при чтении таблицы

>Т.е я должен добавить 'ВСЕ' в справочник

Можно добавить в справочник, сверху наложить вьюху, исключающую это "ВСЁ" и работать со справочником только через неё.

Второй вариант не делать foreign key, a на таблицу повесить триггер, который будет обеспечивать ссылочную целостность для всех значений, кроме строки "ВСЁ"

Третий - перепроектировать таблицы

Все зависит от конечной цели, объема данных, частоты обновления и т.п.
...
Рейтинг: 0 / 0
проектирование таблицы
    #34921101
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фактически Вы в одно поле складываете разнородную информацию, что противоречит 1НФ.
Самое простое - два поля:
field1 NULL FK...
field1t = 0/1 - ВСЕ/ конкретный.
...
Рейтинг: 0 / 0
проектирование таблицы
    #34921900
AlS72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ModelRФактически Вы в одно поле складываете разнородную информацию, что противоречит 1НФ.
Самое простое - два поля:
field1 NULL FK...
field1t = 0/1 - ВСЕ/ конкретный.
Да, наверное правильнее всего так сделать. Спасибо.
...
Рейтинг: 0 / 0
проектирование таблицы
    #34922044
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlS72 ModelRФактически Вы в одно поле складываете разнородную информацию, что противоречит 1НФ.
Самое простое - два поля:
field1 NULL FK...
field1t = 0/1 - ВСЕ/ конкретный.
Да, наверное правильнее всего так сделать. Спасибо.
Не правильнее, а проще.
Там где есть вариант "все" и "конкретный", вполне возможен и вариант "все кроме этих 10 штук".
...
Рейтинг: 0 / 0
проектирование таблицы
    #34922164
AlS72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Васкецов AlS72 ModelRФактически Вы в одно поле складываете разнородную информацию, что противоречит 1НФ.
Самое простое - два поля:
field1 NULL FK...
field1t = 0/1 - ВСЕ/ конкретный.
Да, наверное правильнее всего так сделать. Спасибо.
Не правильнее, а проще.
Там где есть вариант "все" и "конкретный", вполне возможен и вариант "все кроме этих 10 штук".
Все верно, но в целом идея, как я понимаю, остается той же
использовать 2 поля. Только для второго возможно
неограниченное количество значений.
...
Рейтинг: 0 / 0
проектирование таблицы
    #34922231
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlS72в целом идея, как я понимаю, остается той же
использовать 2 поля. Только для второго возможно
неограниченное количество значений.
Это как?
...
Рейтинг: 0 / 0
проектирование таблицы
    #34922497
directcontact
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов AlS72в целом идея, как я понимаю, остается той же
использовать 2 поля. Только для второго возможно
неограниченное количество значений.
Это как?Например, связь Много-ко-Многим с таблицей MY_USERS
...
Рейтинг: 0 / 0
проектирование таблицы
    #34922597
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
directcontact Сергей Васкецов AlS72в целом идея, как я понимаю, остается той же использовать 2 поля. Только для второго возможно неограниченное количество значений.
Это как?Например, связь Много-ко-Многим с таблицей MY_USERS
Позволю себе напомнить, что второе поле - это "field1t = 0/1 - ВСЕ/ конкретный". Как там может быть "неограниченное количество значений"?
...
Рейтинг: 0 / 0
проектирование таблицы
    #34923029
Душка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей ВаскецовПозволю себе напомнить, что второе поле - это "field1t = 0/1 - ВСЕ/ конкретный". Как там может быть "неограниченное количество значений"?Если не придираться к словам, то это спокойно реализуется через третье значение и добавлением доп таблицы - права на объект (собственно many to many).
...
Рейтинг: 0 / 0
проектирование таблицы
    #34923733
AlS72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей ВаскецовПозволю себе напомнить, что второе поле - это "field1t = 0/1 - ВСЕ/ конкретный". Как там может быть "неограниченное количество значений"?
У меня в задаче так даные поступают. Может быть по конкретному значению может быть по всем.
Но теоретически данные могут поступать например так:
значения с 1-10й (field1t=2),
значения с 11-20й (field1t=3) и т.д . Вот я о чем.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / проектирование таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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