Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / 2 таблицы 2 отношения / 25 сообщений из 25, страница 1 из 1
29.04.2013, 18:54
    #38244372
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
Доброго дня!
Есть таблица, которая хранит информацию об учебных дисциплинах (название на английском, название на русском, номер дисциплины).
Проблема в том, что в таблице хранятся предметы с разными названиями, но имеющих один и тот же смысл. Как решить эту задачу? Предложили создать создать таблицу из 2 столбцов: id названия и его псевдоним.
Получается, при создании новой таблицы со столбцами id названия и его псевдоним должно быть 2 отношения (ведь в таблице хранятся все дисциплины, в том числе с различными названиями).
Но как сделать 2 отношения между 2 таблицами?
...
Рейтинг: 0 / 0
29.04.2013, 19:44
    #38244424
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221 Проблема в том, что в таблице хранятся предметы с разными названиями, но имеющих один и тот же смысл. Как решить эту задачу?Хороший пример со структурой таблицы и данными помог бы прояснить проблему и улучшить шансы на адекватный ответ.
w221 Предложили создать создать таблицу из 2 столбцов: id названия и его псевдоним.Хороший годный выход, если названий больше двух: русское, английское, немецкое, офицальное, неофицальное и т.д.
w221 Но как сделать 2 отношения между 2 таблицами?Какими таблицами?
У вас есть сущность - "учебная дисциплина"
вместо атрибута наименование у вас будет другая сущность "алиас учебной дисциплины" (атрибут наименование можно оставить как дефолтное наименование)
...
Рейтинг: 0 / 0
29.04.2013, 20:22
    #38244445
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
SERG1257Хороший пример со структурой таблицы и данными помог бы прояснить проблему и улучшить шансы на адекватный ответ.

структура

subj_name_eng varchar(80)
subj_name_rus varchar(80)
subj# tinyint
subj#- первичный ключ

Пример:
Основы искусственного интеллекта и искусственный интеллект необходимо считать одной и той же дисциплиной.


SERG1257У вас есть сущность - "учебная дисциплина"
вместо атрибута наименование у вас будет другая сущность "алиас учебной дисциплины" (атрибут наименование можно оставить как дефолтное наименование)
Не понял, что Вы имели в виду
...
Рейтинг: 0 / 0
29.04.2013, 20:45
    #38244458
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221Основы искусственного интеллекта и искусственный интеллект необходимо считать
одной и той же дисциплиной.
Значит тебе нужна таблица "Дисциплины" и вторая таблица "Названия дисциплин", связанная с
первой как 1:N.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.04.2013, 20:50
    #38244462
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
То бишь вам таки нужна прополка для учебных дисциплин.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create table subj (
subj_id int primary key, 
subj_code varchar(10) unique)

create table subj_alias (
subj_alias_id int primary key, 
subj_id int references subj,
subj_name varchar(100),
lang_id int references lang)


Добавив в таблицу subj_alias даты dfrom и dto (или дату смены наименования drename) можно обеспечить хранение истории наименования.
Таким образом подходящее название для учебной дисциплины subj_id, идентифицируемое по subj_code из какого нибудь Единого Классификатора Учебных Дисциплин, будет определятся запросом.
Поскольку в реальных задачах такого рода у таблицы subj обычно есть поле subj_name, которое может использоваться где-нибудь в забытых богом отчетах, то удаление этого поля может вызвать ошибки, дешевле его оставить как "дефолтное наименование, если в таблице алиасов не нашлось ничего подходящего"
что то типа
Код: sql
1.
2.
3.
4.
5.
6.
7.
select subj_id, subj_code
isnull
(
 (select max(subj_name) from subj_alias sa where s.subj_id=sa.subj_id and lang_id=1 and ... )
 ,s.subj_name
)
 from subj s


w221 Но как сделать 2 отношения между 2 таблицами?Не понял вопроса.
...
Рейтинг: 0 / 0
29.04.2013, 21:19
    #38244497
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221 Но как сделать 2 отношения между 2 таблицами?Не понял вопроса.
Я хотел создать таблицу столбцами id названия и его псевдоним . Поскольку исходная таблицаw221 subj_name_eng varchar(80)
subj_name_rus varchar(80)
subj# tinyint
subj#- первичный ключ содержит данные столбцы, то возник вопрос как соединить исходную и созданную таблицу.


[quot Dimitry Sibiryakov ]Значит тебе нужна таблица "Дисциплины" и вторая таблица "Названия дисциплин", связанная с
первой как 1:N.[quot Dimitry Sibiryakov ]
в таблице "Дисциплина" будет один столбец с номером дисциплины?
...
Рейтинг: 0 / 0
29.04.2013, 21:46
    #38244522
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221в таблице "Дисциплина" будет один столбец с номером дисциплины?

Ну, если в твоей схеме у дисциплины нет других атрибутов, то - да, один столбец.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.04.2013, 22:43
    #38244557
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
Dimitry Sibiryakov,
Не, у таблицы вот такие атрибуты

subj_name_eng varchar(80)
subj_name_rus varchar(80)
subj# tinyint


Получается у таблицы "Дисциплины" атрибут будет только один subj# tinyint , а у таблицы "Названия дисциплин" subj_name_eng varchar(80)
subj_name_rus varchar(80)
subj# tinyint

Правильно?
...
Рейтинг: 0 / 0
29.04.2013, 22:55
    #38244566
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221Правильно?
По-моему - вряд ли. Но ваше техзадание мне отсюда не видать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
29.04.2013, 23:22
    #38244599
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221 Получается у таблицы "Дисциплины" атрибут будет только один subj# tinyint, а у таблицы "Названия дисциплин" subj_name_eng varchar(80)
subj_name_rus varchar(80)
subj# tinyint
Правильно? Нет
...
Рейтинг: 0 / 0
30.04.2013, 00:37
    #38244651
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
А как тогда правильно?
...
Рейтинг: 0 / 0
30.04.2013, 07:53
    #38244729
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221Доброго дня!
Есть таблица, которая хранит информацию об учебных дисциплинах (название на английском, название на русском, номер дисциплины).
Проблема в том, что в таблице хранятся предметы с разными названиями, но имеющих один и тот же смысл. Как решить эту задачу? Предложили создать создать таблицу из 2 столбцов: id названия и его псевдоним.
Получается, при создании новой таблицы со столбцами id названия и его псевдоним должно быть 2 отношения (ведь в таблице хранятся все дисциплины, в том числе с различными названиями).
Но как сделать 2 отношения между 2 таблицами?

Э-э-э БД не понимает смысла ;-)
Это прерогатива человека.

А так, по вашему описанию, у Вас не нормализованная БД.
Надо нормализовать, скорее всего надо ввести новую сущность, например, "Смысл предмета".
Тогда не надо будет "мутить" с отношениями и индексами.
Просто "предмет" будет ссылаться на "Смысл предмета", который будет однозначен. ;-)

<:o)
...
Рейтинг: 0 / 0
30.04.2013, 15:43
    #38245403
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221Доброго дня!
Есть таблица, которая хранит информацию об учебных дисциплинах (название на английском, название на русском, номер дисциплины).
Проблема в том, что в таблице хранятся предметы с разными названиями, но имеющих один и тот же смысл. Как решить эту задачу?

Суть задачи так и не уловил.
...
Рейтинг: 0 / 0
30.04.2013, 15:54
    #38245438
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
Озверинw221Доброго дня!
Есть таблица, которая хранит информацию об учебных дисциплинах (название на английском, название на русском, номер дисциплины).
Проблема в том, что в таблице хранятся предметы с разными названиями, но имеющих один и тот же смысл. Как решить эту задачу?

Суть задачи так и не уловил.
В таблице находятся названия предметов. Например Введение в искусственный интеллект и Искусственный интеллект .
Нужно сделать так, чтобы Введение в искусственный интеллект ссылалось на Искусственный интеллект , поскольку необходимо их считать одинаковыми дисциплинами.
...
Рейтинг: 0 / 0
30.04.2013, 15:55
    #38245442
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221,

но при этом оба предмета должны по какой то причине остаться в таблице?
...
Рейтинг: 0 / 0
30.04.2013, 16:15
    #38245477
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
Озверинw221,

но при этом оба предмета должны по какой то причине остаться в таблице?
Ну да.
Я вот думаю создать ещё одну таблицу, аналогичную вот этой
subj_name_eng varchar(80)
subj_name_rus varchar(80)
subj# tinyint


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


А в созданной таблице вот такая запись
Искусственный интеллект

Как думаете, подойдёт?
...
Рейтинг: 0 / 0
30.04.2013, 16:29
    #38245502
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221Ну да.
Я вот думаю создать ещё одну таблицу, аналогичную вот этой
subj_name_eng varchar(80)
subj_name_rus varchar(80)
subj# tinyint

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

А в созданной таблице вот такая запись
Искусственный интеллект
Как думаете, подойдёт?

В принципе я вам это и предложил.
Но лучше все таки узнать, чем похожи эти два предмета и почему их сделали отдельными.
Вполне возможно, хотя они и подразумевают одно и то же, но могут читаться на разных факультетах, с разными планами и пр.
...
Рейтинг: 0 / 0
30.04.2013, 17:03
    #38245583
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
SERG1257, Dimitry Sibiryakov, mad_nazgul, Озверин , спасибо, ребята!
...
Рейтинг: 0 / 0
30.04.2013, 17:04
    #38245591
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
> Как думаете, подойдёт?

Все предложенные варианты безобразно кривы. Вы бы задачу сформулировали. Что именно проектируете?
...
Рейтинг: 0 / 0
30.04.2013, 17:11
    #38245609
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
guest_20040621Все предложенные варианты безобразно кривы. Вы бы задачу сформулировали. Что именно проектируете?
Есть несколько университетов. У каждого университета есть свой учебный план по конкретной специальности. Названия дисциплин,обозначающих один и тот же предмет для каждого учебного плана университета, могут отличаться. Необходимо, чтобы различные названия одного и того же предмета ссылались на одно конкретное название.
...
Рейтинг: 0 / 0
30.04.2013, 17:34
    #38245648
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
> Есть несколько университетов.

Если это реальная задача, с дегенератами из Министерства образования вам предстоит разбираться самостоятельно. Если учебная - сформулируйте цели. Если коммерческая - вы ошиблись форумом.
...
Рейтинг: 0 / 0
30.04.2013, 22:19
    #38245826
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
guest_20040621> Есть несколько университетов.

Если это реальная задача, с дегенератами из Министерства образования вам предстоит разбираться самостоятельно. Если учебная - сформулируйте цели. Если коммерческая - вы ошиблись форумом.
А то, что я написал выше недостаточно чтобы помочь?
...
Рейтинг: 0 / 0
30.04.2013, 22:34
    #38245836
guest_20040621
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
> то, что я написал выше недостаточно чтобы помочь?

Недостаточно, иначе я не задал бы вопрос. Видите ли, учебную задачу вряд ли кто-то сформулирует таким образом: решение требует достаточно специфических знаний. Если вы взялись за возмездное решение задачи, которую не в состоянии решить, правильнее будет отказаться от этой работы, чтобы работодатель мог нанять исполнителя соответствующей квалификации. Конкуренция. Слышали, наверное? Ну, а если вы работаете на ВУЗ или Минобразования, то напрасно тратите мое время: отечественной системе образования требуются не базы данных, а масштабные увольнения и чистка программ. С начальной школы и выше.
...
Рейтинг: 0 / 0
02.05.2013, 07:35
    #38246416
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
w221guest_20040621Все предложенные варианты безобразно кривы. Вы бы задачу сформулировали. Что именно проектируете?
Есть несколько университетов. У каждого университета есть свой учебный план по конкретной специальности. Названия дисциплин,обозначающих один и тот же предмет для каждого учебного плана университета, могут отличаться. Необходимо, чтобы различные названия одного и того же предмета ссылались на одно конкретное название.

Понятно.
Плясать надо от специальности и обязательных курсов.
1) Каждый ВУЗ производит обучение по определенным специальностям, код которого должен быть в классификаторе
2) У каждый специальности есть обязательный набор курсов (это приблизительно что вам надо)

Но. Например есть курс "БД", для профильных специальностей, а есть для не профильных.
Не смотря что они могут называться одинаково, но учебный план и содержание могут быть разными.
Или например тот же курс "БД", в разное время его содержание может быть различным.
Это надо учитывать или нет?

Соответственно "знать", что тот или иной курс подобен какому-то другому может только человек.
Т.о. программа не должна думать, думать должен человек.
Вам надо просто добавить новую сущность "подобие дисциплин", в которую человек введет какие дисциплины подобны, а какие нет.

Ну или вообще перейти к понятию платоновской "идеальной дисциплины".
С которой соотносить "подобные дисциплины".


<:o)
...
Рейтинг: 0 / 0
03.05.2013, 12:34
    #38247092
w221
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 таблицы 2 отношения
[quot mad_nazgul]w221пропущено...

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

<:o)
Нет, не нужно.
mad_nazgulСоответственно "знать", что тот или иной курс подобен какому-то другому может только человек.
Т.о. программа не должна думать, думать должен человек.
Вам надо просто добавить новую сущность "подобие дисциплин", в которую человек введет какие дисциплины подобны, а какие нет.

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


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