powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Имя - атрибут или таблица?
20 сообщений из 20, страница 1 из 1
Имя - атрибут или таблица?
    #33794489
Katt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте.
Возник спор, на мой взгляд совершенно бессмысленный, но всё-таки...
Есть 3 таблицы, которые описывают людей, т.е. во всех трёх есть атрибут _имя и атрибут _фамилия.
Рациональнее ли будет сотворить таблицу _Имена и таблицу _Фамилии и подставлять в эти 3 таблицы людей....?
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33794495
ZemA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
справочники имен и фамилий? помоему это бред :)
может лучше категоризацию замутить
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33794820
4321ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
без индексов на вью выделение справочников фамилий и имен скорее всего приведет к проблемам с выборками и сортировками выборок из таблиц "людей" (точнее с использованием сложных индексов например по фио и дате рождения).
С другой стороны фамилии и имена - в обычных учетных системах - всего лишь атрибуты (кстати, клевый глагол: атрибут-атрибёт-атрибём) чела, а не самостийные сущности, требующие таких почестей, как отдельная табла и т.п.. :0)

но можно видимо придумать область (например - подсчет статистики зависимостей характеристик людей от имен или фамилий) где такое выделение будет оправданым.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33794896
Katt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за мысли!
Просьба: если есть ссылки на описание крупных проектов с подобным положением (трижды имеется ввод данных _имя, _фамилия при описании в различных таблицах) кидать сюды.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33794972
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Что за надобность иметь 3 таблицы с людьми? Если это (условно) клиенты, сотрудники, поставщики, то нужно имет одну таблицу (people или person) в которой будут храниться ФИО + все что касается именно человека (дата рождения, паспортные данные, адреса и т.д.). Ваши 3 таблицы будут ссылаться на эту таблицу. Таким образом один и тот же человек не будет у вас написан по-разному в разных таблицах и вы не получите непонятных дубликатов.
2. Справочники имен и фамилий действительно делать нелогично. А вот справочник персон (как я написал выше) вполне возможно и, я бы сказал, необходимо.
3. Можно попробовать поиграться с наследованием - постгрес этим выделяется из множества СУБД. Но нужно знать предметную область - подходит ли вам наследование. Как мне кажется, п1 подходит всегда.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33795246
Katt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такой вариант - не спорю. Но у одной персоны нужны все псп данные, у другой -только ФИО и т.д. Кроме того, выходит связь 1:1, а это не есть хорошо в рамках проектирования - не обосновано и требует "разруливания".
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33795285
> Есть 3 таблицы, которые описывают людей

Почему три? Откуда?

> Рациональнее ли будет сотворить таблицу _Имена и таблицу _Фамилии

Зависит от. Для мультиязычной базы данных скорее всего удобно сделать не получится. По той простой причине, что в разных этнических/территориальных социумах приняты разные варианты идентификации людей (у одних может быть множество имен, у других может присутствовать отчество etc).
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33795303
Katt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одна описывает сотрудников, другая - обучающихся, третья - авторы.
И по одной из таблиц - действительно разброс национальностей.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33795352
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KattЕсть такой вариант - не спорю. Но у одной персоны нужны все псп данные, у другой -только ФИО и т.д.
Ну и что. Необязательные поля никто не отменял.

KattКроме того, выходит связь 1:1, а это не есть хорошо в рамках проектирования - не обосновано и требует "разруливания".
Где тут связь 1 к 1? У вас 3 таблицы ссылаются на одну - таблицу персон. Причем, возможны случаи когда на одну запись будут ссылаться разные таблицы (например, автор может же быть сотрудником).
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33795359
Katt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1:1
Это в ER нотации, когда 1 человек к одной персоне!
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33795379
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katt1:1
Это в ER нотации, когда 1 человек к одной персоне!
Ну-и-что?
Зато если у вас в одной таблице будет Иванов Сергей Петрович, а в другой Иванов Сиргей Петрович (ну опечатались) вы наплачетесь, если нужна будет выборка - сотрудники, являющиеся авторами.
Мыслите сущностями - есть человек. Вот его мы и храним в таблицах. А далее мы можем создавать категории - авторы - ссылка на человека+ то, что присуще только авторам (сами решите что). Обучающийся - легко + номер студ билета+дата поступления+факультет/специальность.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33795487
> Одна описывает сотрудников, другая - обучающихся, третья - авторы.

Это ошибка проектирования.

> И по одной из таблиц - действительно разброс национальностей.

Imho нет особого смысла в справочнике имен и фамилий в данном случае.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33815801
Katt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pamirМыслите сущностями - есть человек. Вот его мы и храним в таблицах. А далее мы можем создавать категории
Если не ошибаюсь, то сущностями мыслить - это как раз получить авторов, сотрудников и студентов. А то, о чём говорите вы - это ОО подход - классы другими словами!
Но база то релционная! А не каше какая-н...
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33816004
4321ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Katt pamirМыслите сущностями - есть человек. Вот его мы и храним в таблицах. А далее мы можем создавать категории
Если не ошибаюсь, то сущностями мыслить - это как раз получить авторов, сотрудников и студентов.прально. токо эти 3 сучности содержат поле-сучность "персона". Чито реализуется в реляционной парадихме ф-кеем, либо попросту широкой таблицуй с признаком типа (таблицы в современных субд неплохо справляются с Null полями, т.ч. синно их страшица видимо не стоИт). и никакого оопа тут не ле'жало.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33816747
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katt pamirМыслите сущностями - есть человек. Вот его мы и храним в таблицах. А далее мы можем создавать категории
Если не ошибаюсь, то сущностями мыслить - это как раз получить авторов, сотрудников и студентов. А то, о чём говорите вы - это ОО подход - классы другими словами!
Но база то релционная! А не каше какая-н...
Как правильно указал 4321ё - авторы, сотрудники и студенты - это есть частные случаи одной сущности - персона. Создайте персону, а остальное навесьте как характеристики этой персоны.

PS. ООП подход с некоторыми оговорками можно применять и к реляционной базе. И проектировать будет легче и поддерживать удобнее.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33818236
Katt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо. Ну а к примеру то, что ФИО студента добывается раз 100 в секунду, а ФИО сотрудника - 1 раз в день, это нормально? Ведь со структурой "персона - студент, персона - сотрудник" мы нагружаем определённое место базы!
Или "table partitioning" и забыть про то,что персона - самое "горячее" место будет?
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33818464
-me-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KattХорошо. Ну а к примеру то, что ФИО студента добывается раз 100 в секунду, а ФИО сотрудника - 1 раз в день, это нормально? Ведь со структурой "персона - студент, персона - сотрудник" мы нагружаем определённое место базы!
Или "table partitioning" и забыть про то,что персона - самое "горячее" место будет?

А вполне возможный на практике вариант, когда сотрудник одновременно является студентом, а кроме того, еще и аффтаром, как будете разруливать? :)
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33818489
Katt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот... Это единственное, из-за чего я сомневаюсь!!
НО: предметная область есть предметная область... Её главные принципы неизменны, а такие "переходы" - вещь почти невозможная в структуре жёсткой - государственной.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33818521
4321ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KattНО: предметная область есть предметная область... Её главные принципы неизменны, а такие "переходы" - вещь почти невозможная в структуре жёсткой - государственной.
студенты старших курсов часто совместители. очень часто - афтары. препы/сотрудники - очень часто авторы.
...
Рейтинг: 0 / 0
Имя - атрибут или таблица?
    #33818983
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KattХорошо. Ну а к примеру то, что ФИО студента добывается раз 100 в секунду, а ФИО сотрудника - 1 раз в день, это нормально? Ведь со структурой "персона - студент, персона - сотрудник" мы нагружаем определённое место базы!
Или "table partitioning" и забыть про то,что персона - самое "горячее" место будет?
И что? В вашем случае вы нагружаете другое определенное место базы - таблицу студентов. А если у вас в таблице перосны кроме студентов присутствует еще с сотню редко вытаскиваемых фамилий, то никакой разницы не будет. Понадобится индекс, но он и в вашем случае понадобится. Какие-то фамилии вытаскиваются чаще, какие-то реже.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Имя - атрибут или таблица?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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