powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / таблица Персонал, расширенные атрибуты для конкретных профессий...
6 сообщений из 6, страница 1 из 1
таблица Персонал, расширенные атрибуты для конкретных профессий...
    #38792299
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
изначально делалось так
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE DRIVERS (
    ID           INTEGER NOT NULL,
    CLIENT_CODE  INTEGER NOT NULL,
    PROFESSION   INTEGER NOT NULL,
    CATEGORY     VARCHAR(40),
    OUR_ACTIVE   T_TRILEAN DEFAULT 1, /* T_TRILEAN = INTEGER DEFAULT 0 NOT NULL CHECK (VALUE IN (0,1,2)) */
    DBUS         INTEGER,
    EXPERIENCE   DATE
);


потом добавилась такая таблица
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE MANAGERS (
    ID           INTEGER NOT NULL,
    CLIENT_CODE  INTEGER NOT NULL,
    PROFESSION   INTEGER NOT NULL,
    CATEGORY     VARCHAR(40),
    OUR_ACTIVE   T_BOOLEAN DEFAULT 1, /* T_BOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (VALUE IN (0,1)) */
    OFFICE       SMALLINT DEFAULT 0 NOT NULL,
    WORK_ON      VARCHAR(25)
);



таблицы по сути идентичные, за исключением нескольких полей.

Подскажите, как лучше организовать общую таблицу PERSONAL, c расширенными атрибутами в таблицах MANAGERS и DRIVERS
...
Рейтинг: 0 / 0
таблица Персонал, расширенные атрибуты для конкретных профессий...
    #38792300
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
таблица Персонал, расширенные атрибуты для конкретных профессий...
    #38792301
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,
да понятно, что можно допилить

Код: plsql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE PERSONAL(
    ID           INTEGER NOT NULL,
    CLIENT_CODE  INTEGER NOT NULL,
    PROFESSION   INTEGER NOT NULL,
    CATEGORY     VARCHAR(40),
    OUR_ACTIVE   T_BOOLEAN DEFAULT 1, /* T_BOOLEAN = INTEGER DEFAULT 0 NOT NULL CHECK (VALUE IN (0,1)) */
);



Код: plsql
1.
2.
3.
4.
5.
6.
CREATE TABLE DRIVERS (
    ID           INTEGER NOT NULL,
    PERSONAL_CODE  INTEGER NOT NULL,
    DBUS         INTEGER,
    EXPERIENCE   DATE
);



Код: plsql
1.
2.
3.
4.
5.
6.
CREATE TABLE MANAGERS (
    ID           INTEGER NOT NULL,
    PERSONAL_CODE  INTEGER NOT NULL,
    OFFICE       SMALLINT DEFAULT 0 NOT NULL,
    WORK_ON      VARCHAR(25)
);



но может есть другой вариант?
...
Рейтинг: 0 / 0
таблица Персонал, расширенные атрибуты для конкретных профессий...
    #38792308
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mkr но может есть другой вариант? Есть. Засунуть все в одну таблицу. Полезно когда сущности скорее сходны чем различны, есть поиск по общим полям, отличающихся полей мало и т.д.
Или держать две таблицы с повторяющимся набором полей. Полезно, когда сущности скорее разные, чем одинаковые.
...
Рейтинг: 0 / 0
таблица Персонал, расширенные атрибуты для конкретных профессий...
    #38792587
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одна таблица + к.л. разновидность EAV.

Сабж в разных таблицах - полнейший тупик. Даже не хочу рассказывать, почему.
...
Рейтинг: 0 / 0
таблица Персонал, расширенные атрибуты для конкретных профессий...
    #38793359
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / таблица Персонал, расширенные атрибуты для конкретных профессий...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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