Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по структуре связей таблиц / 25 сообщений из 34, страница 1 из 2
17.06.2013, 10:52
    #38299529
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
Здравствуйте!

Подскажите пожалуйста.

Есть таблица сущностей, например, сотрудники.
У сущностей есть характеристики, например, дипломы об образовании.

Количество дипломов, по каждому сотруднику, за ранее не известно.
Т.е у одного может быть один диплом, у другого пять.

Вопрос:
в такой ситуации лучше создать отдельную таблицу характеристик с внешним ключом к таблице "сотрудник" ?

спасибо.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
17.06.2013, 10:53
    #38299532
Сергей Викт.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63Здравствуйте!

Подскажите пожалуйста.

Есть таблица сущностей, например, сотрудники.
У сущностей есть характеристики, например, дипломы об образовании.

Количество дипломов, по каждому сотруднику, за ранее не известно.
Т.е у одного может быть один диплом, у другого пять.

Вопрос:
в такой ситуации лучше создать отдельную таблицу характеристик с внешним ключом к таблице "сотрудник" ?

спасибо.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
Конечно.
...
Рейтинг: 0 / 0
17.06.2013, 10:59
    #38299544
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
Сергей Викт.vladka63Здравствуйте!

Подскажите пожалуйста.

Есть таблица сущностей, например, сотрудники.
У сущностей есть характеристики, например, дипломы об образовании.

Количество дипломов, по каждому сотруднику, за ранее не известно.
Т.е у одного может быть один диплом, у другого пять.

Вопрос:
в такой ситуации лучше создать отдельную таблицу характеристик с внешним ключом к таблице "сотрудник" ?

спасибо.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
Конечно.

спасибо )
...
Рейтинг: 0 / 0
17.06.2013, 11:11
    #38299575
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
Еще возник вопрос:

сущности, сотруднику, может быть назначена одна характеристика из нескольких.

Например: пол сотрудника.

Т.е есть таблица сотрудников и есть таблица полов (две строки: М и Ж).

Вопрос:
в этом случае Id пола правильнее записать в таблицу сотрудника или сделать третью таблицу между ними, где будет два Id: сотрудника и пола?

Как правильнее?


Спасибо.
...
Рейтинг: 0 / 0
17.06.2013, 11:17
    #38299592
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63,

А что, у одного сотрудника может быть несколько полов одновременно?
(Дополнительная таблица реализует связь "многие ко многим.)
...
Рейтинг: 0 / 0
17.06.2013, 11:21
    #38299602
Сергей Викт.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63Еще возник вопрос:

сущности, сотруднику, может быть назначена одна характеристика из нескольких.

Например: пол сотрудника.

Т.е есть таблица сотрудников и есть таблица полов (две строки: М и Ж).

Вопрос:
в этом случае Id пола правильнее записать в таблицу сотрудника или сделать третью таблицу между ними, где будет два Id: сотрудника и пола?

Как правильнее?


Спасибо.
Отдельную таблицу делать не надо. В таблице сотрудников можно указать пол, т.к. в этом случае связь будет один к одному и повторения значений в двух столбцах не произойдёт. Что не противоречит нормальной форме организации данных (второй или третей).
...
Рейтинг: 0 / 0
17.06.2013, 11:22
    #38299607
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
baracsvladka63,

А что, у одного сотрудника может быть несколько полов одновременно?
(Дополнительная таблица реализует связь "многие ко многим.)

ну, мало ли.. )))

т.е это нормально, записать, например, id пола в таблицу сотрудника?
правильно понимаю?
...
Рейтинг: 0 / 0
17.06.2013, 11:28
    #38299625
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63baracsvladka63,

А что, у одного сотрудника может быть несколько полов одновременно?
(Дополнительная таблица реализует связь "многие ко многим.)

ну, мало ли.. )))

т.е это нормально, записать, например, id пола в таблицу сотрудника?
правильно понимаю? Да.
...
Рейтинг: 0 / 0
17.06.2013, 11:59
    #38299699
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
baracsvladka63пропущено...


ну, мало ли.. )))

т.е это нормально, записать, например, id пола в таблицу сотрудника?
правильно понимаю? Да.

а когда создаю поле в таблице сотрудника, для записи пола, поле я могу назвать как угодно и в него записать Id пола или это должен быть внешний ключ на таблицу полов?
...
Рейтинг: 0 / 0
17.06.2013, 12:03
    #38299705
Сергей Викт.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63baracsпропущено...
Да.

а когда создаю поле в таблице сотрудника, для записи пола, поле я могу назвать как угодно и в него записать Id пола или это должен быть внешний ключ на таблицу полов?
он необязательно должен быть внешним ключом. Вы можете туда хоть абра-катабру записать. Просто если ID пола не будет найдено при выборке из таблицы полов, то в тектовое значение пола будет записано NULL
...
Рейтинг: 0 / 0
17.06.2013, 12:07
    #38299712
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63...и в него записать Id пола или это должен быть внешний ключ на таблицу полов? Ниасилил.
...
Рейтинг: 0 / 0
17.06.2013, 12:21
    #38299743
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
Сергей Викт.vladka63пропущено...


а когда создаю поле в таблице сотрудника, для записи пола, поле я могу назвать как угодно и в него записать Id пола или это должен быть внешний ключ на таблицу полов?
он необязательно должен быть внешним ключом. Вы можете туда хоть абра-катабру записать. Просто если ID пола не будет найдено при выборке из таблицы полов, то в тектовое значение пола будет записано NULL

все понял, спасибо большое!
...
Рейтинг: 0 / 0
17.06.2013, 12:21
    #38299744
проще надо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63, зачем вообще нужны id полов? пиши просто "эм" и "жо". Так понятнее всем будет
А то думай потом чё это за пол №1 или пол №2. Для того, чтобы понять и разобраться, придётся в каждом запросе таблицу полов джойнить.
...
Рейтинг: 0 / 0
17.06.2013, 12:22
    #38299747
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63baracsпропущено...
Да.

а когда создаю поле в таблице сотрудника, для записи пола, поле я могу назвать как угодно и в него записать Id пола или это должен быть внешний ключ на таблицу полов?

Это должен быть внешний ключ на таблицу полов, конечно - но при этом Вы можете назвать его как угодно :)
То что поле-внешний ключ должно называться так же, как поле-первичный ключ мастер-таблицы - это не правило, а всего лишь рекомендация (причем не всегда применимая)
...
Рейтинг: 0 / 0
17.06.2013, 12:23
    #38299749
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
проще надоvladka63, зачем вообще нужны id полов? пиши просто "эм" и "жо". Так понятнее всем будет
А то думай потом чё это за пол №1 или пол №2. Для того, чтобы понять и разобраться, придётся в каждом запросе таблицу полов джойнить.

я думал, просто текстовые поля поставить и пусть пишут, как захотят.
но предполагается, что возможен отчет по параметру.
покажите только Жо или только ЭМ..
...
Рейтинг: 0 / 0
17.06.2013, 12:43
    #38299791
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63
Вопрос:
в такой ситуации лучше создать отдельную таблицу характеристик с внешним ключом к таблице "сотрудник" ?



Не лучше, а единственно правильно.
...
Рейтинг: 0 / 0
17.06.2013, 12:43
    #38299792
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
Кот Матроскинvladka63пропущено...


а когда создаю поле в таблице сотрудника, для записи пола, поле я могу назвать как угодно и в него записать Id пола или это должен быть внешний ключ на таблицу полов?

Это должен быть внешний ключ на таблицу полов, конечно - но при этом Вы можете назвать его как угодно :)
То что поле-внешний ключ должно называться так же, как поле-первичный ключ мастер-таблицы - это не правило, а всего лишь рекомендация (причем не всегда применимая)

так я не особо понял: это все таки должен быть обязательно внешний ключ или не обязательно..

выше Виктор Сергеевич пишет: "он необязательно должен быть внешним ключом"
...
Рейтинг: 0 / 0
17.06.2013, 12:45
    #38299797
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63Еще возник вопрос:

сущности, сотруднику, может быть назначена одна характеристика из нескольких.

Например: пол сотрудника.

Т.е есть таблица сотрудников и есть таблица полов (две строки: М и Ж).

Вопрос:
в этом случае Id пола правильнее записать в таблицу сотрудника или сделать третью таблицу между ними, где будет два Id: сотрудника и пола?

Как правильнее?


Спасибо.


В таком случае ид пола должен быть атрибутом (полем) таблицы сотрудника.
...
Рейтинг: 0 / 0
17.06.2013, 12:49
    #38299809
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63baracsпропущено...
Да.

а когда создаю поле в таблице сотрудника, для записи пола, поле я могу назвать как угодно и в него записать Id пола или это должен быть внешний ключ на таблицу полов?

Да, внешний ключь.
Но называться поле может как угодно, единственно, что переименовывать его в данном случае нецелесообразно.
...
Рейтинг: 0 / 0
17.06.2013, 12:50
    #38299812
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
MasterZivvladka63пропущено...


а когда создаю поле в таблице сотрудника, для записи пола, поле я могу назвать как угодно и в него записать Id пола или это должен быть внешний ключ на таблицу полов?

Да, внешний ключь.
Но называться поле может как угодно, единственно, что переименовывать его в данном случае нецелесообразно.

вот теперь все понятно.

называем поле, как в таблице полов и делаем внешний ключ..
...
Рейтинг: 0 / 0
17.06.2013, 12:51
    #38299815
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
Кот Матроскинvladka63пропущено...


а когда создаю поле в таблице сотрудника, для записи пола, поле я могу назвать как угодно и в него записать Id пола или это должен быть внешний ключ на таблицу полов?

Это должен быть внешний ключ на таблицу полов, конечно - но при этом Вы можете назвать его как угодно :)
То что поле-внешний ключ должно называться так же, как поле-первичный ключ мастер-таблицы - это не правило, а всего лишь рекомендация (причем не всегда применимая)


Не рекомендация, а просто разумное бездействие.
...
Рейтинг: 0 / 0
17.06.2013, 12:59
    #38299834
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
vladka63,

Как бы в данном конкретном случае можно и не делать отдельный справочник полов, если быть уверенным на 100%, что он никогда не будет расширяться.

Но это вопрос очень спорный, и я бы всё равно 200 раз бы подумал на этот счет.

В общем это один из классических вопросов проектирования бд, как реализовать домен из предметной области — через справочник или через пользовательский домен с констрейнтом на допустимые значения.

Через справочник всегда гибче, но немного больше затраты на реализацию.
...
Рейтинг: 0 / 0
17.06.2013, 13:02
    #38299836
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
Да, ещё — это один из редких случаев, когда применение естественного ключа оправдано. Так что рекомендую использовать не id, а классические буквы эМ и Жо, ну, конечно их английский вариант: M F.
...
Рейтинг: 0 / 0
17.06.2013, 13:04
    #38299840
vladka63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
MasterZivvladka63,

Как бы в данном конкретном случае можно и не делать отдельный справочник полов, если быть уверенным на 100%, что он никогда не будет расширяться.

Но это вопрос очень спорный, и я бы всё равно 200 раз бы подумал на этот счет.

В общем это один из классических вопросов проектирования бд, как реализовать домен из предметной области — через справочник или через пользовательский домен с констрейнтом на допустимые значения.

Через справочник всегда гибче, но немного больше затраты на реализацию.

затраты тут не учитываются.
я параллельно еще "отрабатываю" единообразие модели таблиц.
дабы не изобретать каждый раз "велосипед" с запросами и т.д.
...
Рейтинг: 0 / 0
17.06.2013, 13:42
    #38299918
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре связей таблиц
Видите ли, vladka63, есть как минимум три контекста для регистрации пола человека. Если вы говорите о биологическом виде, то не сможете обойтись двумя значениями. Если вы говорите об удостоверяющих личность документах, то имеете зависимость от государственной принадлежности службы, удостоверяющей личность. Вам также может быть интересно, как человек себя идентифицирует. В зависимости от назначения базы данных могут быть использованы все три контекста. Ваша задача - четко понимать, что вы регистрируете и для какой цели. Совершенно очевидно, что вам потребуется справочник, но его реализация может быть разной.

> один из классических вопросов проектирования

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


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