powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / организация БД (индексы или объекты)
14 сообщений из 14, страница 1 из 1
организация БД (индексы или объекты)
    #37868779
saya812
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Вопрос новичка – ваяю БД: каждый день создается документ (назовем "таблица заказов") в него из справочников ("таблица клиентов") заносятся клиенты. Вопрос: лучше и правильнее хранить в таблице заказов:
1. Индексы клиентов
2. Самих клиентов(грубо говоря фамилии)
Прошлые заказы не меняются, то есть если у меня у клиента сменился адрес, то надо чтобы в прошлых заказах остался старый.
Общая инфа – повторяемость клиентов в среднем не больше 5. Длинна информации каждом о клиенте на больше 100 символов. Заказов в общей таблице до 100000.
Просто вот думаю, может по второму варианту – он конечно не нормализован, но с другой стороны повторений клиентов не так много, за целостностью следить не надо, любые изменения можно делать, не боясь повредить прошлую инфу и тд… А минусы – размер, но для 100000 записей то пофиг;)

Или это плохой вариант?
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37868932
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saya812Или это плохой вариант?

Нормальный вариант если не требуется получать "все заказы данного клиента".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37868965
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
saya812Прошлые заказы не меняются, то есть если у меня у клиента сменился адрес, то надо чтобы в прошлых заказах остался старый.

Вариант 1. И вести историю изменения реквизитов клиентов.
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869001
saya812
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы! Мнения разделились)))

Нормальный вариант если не требуется получать "все заказы данного клиента".

Но даже если так - то я ведь буду этого клиента по фамилии искать, а не по индексу (пользователь ведь все равно будет фамилию вводить) - если несколько однофамильцев - значит надо по доп. полям искать. Если для поиска в справочнике выбирать будет - то сразу искать по нескольким полям...

Вариант 1. И вести историю изменения реквизитов клиентов.

А какая все-же основная цель этого усложнения?


На самом деле начал делать по 1 варианту, даже написал пару сложных(для меня) запросов, но когда дошел до того что надо еще и изменения сохранять задумался об общей целесообразности... Ведь по второму варианту - сегодня вася пупкин с адрсом 1, завтра он адрес сменил, менеджер просто открыл его и поменял адрес - все просто, ни за чем следить не надо... А если по первому - менять нельзя, вся база поплывет, надо нового васю забивать, либо создавать еще 1 справочник с адресами для истории (типа последний=актуальный)...
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869041
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saya812Но даже если так - то я ведь буду этого клиента по фамилии искать, а не по индексу
(пользователь ведь все равно будет фамилию вводить)

Ни у человека, ни у организации нет естественного ключа. Любой атрибут, включая фамилию и
название может поменяться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869055
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНи у человека, ни у организации нет естественного ключа. Любой атрибут, включая фамилию и
название может поменяться.

Признаком ключа является все же не неизменность, а уникальность.
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869070
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoПризнаком ключа является все же не неизменность, а уникальность.

Теоретикам уникальности может и достаточно, на практике же требуется и неизменность.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869119
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saya812А какая все-же основная цель этого усложнения?


Если клиент у вас поменял фамилию (замуж вышел :)) - как Вы найдете его старые заказы?
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869127
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТеоретикам уникальности может и достаточно, на практике же требуется и неизменность.

Скорей всего теории уникальности нет, но есть понятие ключа в нем имеет значение тока уникальность. Ну так его изобретатели придумали. Ниче не попишешь: оне не озаботились практическими потребностями "не теоретиков"
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869216
alexxxx0101
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предлагаю для заказа хранить индекс клиента и адрес доставки, а не адрес клиента. Точнее ссылку на адрес доставки. По умолчанию адрес доставки = адрес клиента.
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869230
saya812
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Любой атрибут, включая фамилию и название может поменяться.
Если клиент у вас поменял фамилию (замуж вышел :)) - как Вы найдете его старые заказы?

Ну все же если фамилия поменялась то это скорее другой клиент...
Просто ключи операторам все равно не доступны.
Или под таблицей клиентов еще таблицу фамилий делать? Тогда в основной таблице клиенты уже будут храниться не просто как индексы, а уже как целые конструкции(объекты) - клиент_ид.фамилия_ид. А я то надеялся обойтись без геморроя...

А вообще, может тогда хранить в основной таблице просто фамилию, но сделать еще дополнительное поле(скрытое, назовем "индекс клиента") для хранения индекса карточки клиента. Тогда я смогу менять в карточке клиента что угодно, а главной таблице останется информация на момент заказа, а найти этого клиента я всегда смогу по "индексу клиента":) Может так сделать? (критика приветствуется)
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869247
saya812
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexxxx0101Предлагаю для заказа хранить индекс клиента и адрес доставки, а не адрес клиента. Точнее ссылку на адрес доставки. По умолчанию адрес доставки = адрес клиента.
То есть фамилию клиента не хранить в заказе? но тогда при смене фамилии в карточке клиента, в старых заказах смениться фамилия...
Может я что не так понял...
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869273
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saya812А вообще, может тогда хранить в основной таблице просто фамилию, но сделать еще дополнительное поле(скрытое, назовем "индекс клиента") для хранения индекса карточки клиента. Тогда я смогу менять в карточке клиента что угодно, а главной таблице останется информация на момент заказа, а найти этого клиента я всегда смогу по "индексу клиента":) Может так сделать? (критика приветствуется)

Да, это рабочий вариант, так делают - этакий дешевый вариант версионности данных.
...
Рейтинг: 0 / 0
организация БД (индексы или объекты)
    #37869308
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
saya812А какая все-же основная цель этого усложнения?
Отличить реальные изменения от исправления ошибок. Но я согласен, это не просто.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / организация БД (индексы или объекты)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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