Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проблемы с созданием структуры БД / 5 сообщений из 5, страница 1 из 1
10.11.2005, 17:48
    #33372028
AYK
AYK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с созданием структуры БД
Привет Всем!
Поделитесь опытом:

Например есть таблица: "tbl_employees"
В ней столбец: "col_name"

Как правильно организовать хранение имен в таблице,
если в каждый текущий момент времени служащий может
иметь только ОДНО имя, но может его менять.
Необходимо хранить ВСЕ имена служащего.

На ум пришло 3 способа, но хотелось бы узнать Ваше мнение.

1-й способ
Хранить текущее имя в базовой таблице "tbl_employees",
а старые имена в другой "tbl_oldname"

---
tbl_employees
---
col_employees_id
col_name
---

---
tbl_oldname
---
col_oldname_id
col_employees_id
col_name
---

2-й способ
Хранить все имена в таблице-справочнике - "tbl_name",
а старые имена в другой - "tbl_oldname"

---
tbl_employees
---
col_employees_id
col_name_id
---

---
tbl_name
---
col_name_id
col_name
---

---
tbl_oldname
---
col_oldname_id
col_employees_id
col_name_id
---

3-й способ
Хранить все имена в спец. таблице и
отслеживать статус имени с помощью столбца "col_is_current",
например чтобы для каждого "col_employees_id" была только
одна запись с "col_is_current" = 1

---
tbl_employees
---
col_employees_id
---

---
tbl_name
---
col_name_id
col_employees_id
col_name
col_is_current
---
...
Рейтинг: 0 / 0
10.11.2005, 17:59
    #33372057
-------------
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с созданием структуры БД
AYK
Как правильно организовать хранение имен в таблице,
если в каждый текущий момент времени служащий может
иметь только ОДНО имя, но может его менять.
Необходимо хранить ВСЕ имена служащего.

баян ,
баян ,
баян ....
...
Рейтинг: 0 / 0
11.11.2005, 07:45
    #33372479
John P.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с созданием структуры БД
Я бы реализовал так:
tbl_employees
---
col_employees_id
col_name
col_begin
col_end


в такой таблице хранится и текущее имя, и история изменений
...
Рейтинг: 0 / 0
11.11.2005, 13:56
    #33373655
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с созданием структуры БД
3й способ, только лучше поле статуса заменить на номер модификации, последняя модификация определяет актуальное имя
...
Рейтинг: 0 / 0
14.11.2005, 16:39
    #33377164
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с созданием структуры БД
Однозначно третий способ.

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


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