Здравствуйте, paucity, Вы писали:
P>С точки зрения нормализации, у тебя, возможно, должны быть таблицы: P>student P>group P>faculty P>student_group P>group_faculty
именно!
но видимо "таблицы отношений" ещё не проходили...
Здравствуйте, Pavel Dvorkin, Вы писали:
П>>Студенты без группы входят в группу студентов без группы
PD>Да. Это решение уже и предложено здесь
PD>https://rsdn.org/forum/db/8843919.1
Здравствуйте, paucity, Вы писали:
P>Для snapshot'а, а для отслеживания перехода студента из группы в группу?
UPDATE student SET group_id = target_group_id
Или ты что-то иное имеешь в виду под словом "отслеживание". Историю его нахождения в группах за весь курс обучения ? Тогда да, но об этом речи не было.
Здравствуйте, Alex.Che, Вы писали:
AC>студент имеет право обучаться более чем по одной специальности. AC>по крайней мере в РФ это так, согласно ФГОС от 2021г.
Вообще-то может, а в других случаях точно может (например, спортшкола). Однако в рамках заданной темы предполагается, что не может.
Здравствуйте, Pavel Dvorkin, Вы писали:
AC>>студент имеет право обучаться более чем по одной специальности. AC>>по крайней мере в РФ это так, согласно ФГОС от 2021г.
PD>Вообще-то может, а в других случаях точно может (например, спортшкола). PD>Однако в рамках заданной темы предполагается, что не может.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Qulac, Вы писали:
PD>>>А зачем тогда смайлик поставил ?
Q>>Я его всегда ставлю.
PD>Я же не знал В ответе он был один, было бы много — может, и догадался бы.
PD>>>>>Плюс дискриминатор в этой таблице , чтобы отличать группы от факультетов
Q>>>>Это за чем?
PD>>>Ну этот тот же instanceof.
PD>>>Получил по студенческому FK элемент из базовой таблицы, а теперь куда второй запрос ? На факультет или группу ?
Q>>На ту таблицу где есть соответствующая строка в fk на ключ.
PD>Где, в базовой таблице или в таблице группы или факультета ? Если в базовой, то там, значит, 2 FK и один из них NULL ?
Нет не значит.
Если в таблице группы или факультета, то как мне узнать, в какой ?
Сделать запрос.
PD>>>>>Плюс не знаю какие CONSTRAINT или еще что-то, чтобы группы не включались в группы, факультеты в группы или факультеты, а только группы в факультеты.
PD>>>То есть у группы будет 2 FK — на факультет и на базовую таблицу ?
Q>>Да.
PD>Сложновато.
PD>Решение вот тут мне кажется оптимальным.
PD>https://rsdn.org/forum/db/8843919.1
Здравствуйте, Qulac, Вы писали:
PD>>Где, в базовой таблице или в таблице группы или факультета ? Если в базовой, то там, значит, 2 FK и один из них NULL ?
Q>Нет не значит.
Q> Если в таблице группы или факультета, то как мне узнать, в какой ?
Q>Сделать запрос.
Ok, можно чуть подробнее ?
student имеет FK на базовую таблицу. Получили запись из нее, хорошо
На базовую ссылаются 2 таблицы : группа и факультет
Где FK ? В каждой из них на базовую ? А дискриминатора в базовой нет. В какую делать теперь запрос ? Или UNION предлагаешь ?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Qulac, Вы писали:
PD>>>Где, в базовой таблице или в таблице группы или факультета ? Если в базовой, то там, значит, 2 FK и один из них NULL ?
Q>>Нет не значит.
Q>> Если в таблице группы или факультета, то как мне узнать, в какой ?
Q>>Сделать запрос.
PD>Ok, можно чуть подробнее ?
PD>student имеет FK на базовую таблицу. Получили запись из нее, хорошо
PD>На базовую ссылаются 2 таблицы : группа и факультет
одно из двух: факультет или группа.
PD>Где FK ? В каждой из них на базовую ? А дискриминатора в базовой нет. В какую делать теперь запрос ? Или UNION предлагаешь ?
Да Union.
Программа – это мысли спрессованные в код
Re[10]: и еще один вопрос по реляционной структуре
PD>>student имеет FK на базовую таблицу. Получили запись из нее, хорошо
PD>>На базовую ссылаются 2 таблицы : группа и факультет
Q>одно из двух: факультет или группа.
Ну да, понятно.
PD>>Где FK ? В каждой из них на базовую ? А дискриминатора в базовой нет. В какую делать теперь запрос ? Или UNION предлагаешь ?
Q>Да Union.
Тогда понятно.
Вот только с UNION вопрос. Таблицы-то сильно разные. В них вообще может не быть одинаковых по смыслу полей, кроме ID, и то, если он в них есть(они могли бы использовать ID базовой как свой PK). Что брать-то ? И как потом определить, откуда взяли ?
With best regards
Pavel Dvorkin
Re[11]: и еще один вопрос по реляционной структуре
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Qulac, Вы писали:
PD>>>student имеет FK на базовую таблицу. Получили запись из нее, хорошо
PD>>>На базовую ссылаются 2 таблицы : группа и факультет
Q>>одно из двух: факультет или группа.
PD>Ну да, понятно.
PD>>>Где FK ? В каждой из них на базовую ? А дискриминатора в базовой нет. В какую делать теперь запрос ? Или UNION предлагаешь ?
Q>>Да Union.
PD>Тогда понятно.
PD>Вот только с UNION вопрос. Таблицы-то сильно разные. В них вообще может не быть одинаковых по смыслу полей, кроме ID, и то, если он в них есть(они могли бы использовать ID базовой как свой PK). Что брать-то ? И как потом определить, откуда взяли ?
В чем проблема нужный запрос написать, sql поддерживает условные операторы CASE и IIF?
Программа – это мысли спрессованные в код
Re[12]: и еще один вопрос по реляционной структуре
Здравствуйте, Qulac, Вы писали:
PD>>Вот только с UNION вопрос. Таблицы-то сильно разные. В них вообще может не быть одинаковых по смыслу полей, кроме ID, и то, если он в них есть(они могли бы использовать ID базовой как свой PK). Что брать-то ? И как потом определить, откуда взяли ?
Q>В чем проблема нужный запрос написать, sql поддерживает условные операторы CASE и IIF?
Да ради бога, а что брать-то и как определить, откуда взяли
В таблице группы есть одно поле number int. И FK на базовую
В таблице факультет есть одно поле name varchar. И FK на базовую, конечно