Size: a a a

DBA - русскоговорящее сообщество

2021 March 16

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Такой результат требуется?
http://sqlfiddle.com/#!9/2375df/19

с MySQL не оч. знаком, так бы советовал не вложенным запросом, а оконной функцией (partition by), ну или с помощью lateral join (outer join)
источник

VS

Vitaliy Sheverov in DBA - русскоговорящее сообщество
PavelDmitrenko
Такой результат требуется?
http://sqlfiddle.com/#!9/2375df/19

с MySQL не оч. знаком, так бы советовал не вложенным запросом, а оконной функцией (partition by), ну или с помощью lateral join (outer join)
неужели, результат тот, что надо, спасибо
надеюсь подойдет, так как это только часть задачи
источник

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Vitaliy Sheverov
неужели, результат тот, что надо, спасибо
надеюсь подойдет, так как это только часть задачи
Не за что!
источник

P

PavelDmitrenko in DBA - русскоговорящее сообщество
Vitaliy Sheverov
неужели, результат тот, что надо, спасибо
надеюсь подойдет, так как это только часть задачи
Вот даже поинтересней песочница в том плане, что поддерживает синтаксис MySQL более высоких версий (в sqlfiddle CTE для заявленной там версии MySQL  не работают). Ну и с partition_by сразу
https://www.db-fiddle.com/f/v9ZftQVXPjsYxjEyEuACac/1
источник
2021 March 17

RG

Ryan Gray in DBA - русскоговорящее сообщество
I lost myself
источник

E

Etki in DBA - русскоговорящее сообщество
Ryan Gray
I lost myself
this is what you get when you mess with us
источник

z

zil_spb in DBA - русскоговорящее сообщество
Alex
Крупными мазками: если мажорные версии совпадают - снимай дамп xtrabackup, цепляй кластер репликой к текущему, потом переключай приложение
привет еще раз. а ты хоть раз так делал? ибо через xtrabackup завелся кластер с одной нодой (и живой базой - и да, это мегасупер вариант в плане скорости), а все остальные ноды при настроенных конфигах тупо зависают на service mysql start. в скуле единственной ноды размер кластера равен 1, само собой.
источник

A

Alex in DBA - русскоговорящее сообщество
zil_spb
привет еще раз. а ты хоть раз так делал? ибо через xtrabackup завелся кластер с одной нодой (и живой базой - и да, это мегасупер вариант в плане скорости), а все остальные ноды при настроенных конфигах тупо зависают на service mysql start. в скуле единственной ноды размер кластера равен 1, само собой.
ты уверен что они зависают, а не делают копию с донор-ноды через SST? Рекомендую ознакомится с документацией Galera
источник

A

Art in DBA - русскоговорящее сообщество
Привет. хотел бы задать такой вопрос зачем нужно создавать таблицы с отдельными сущностями, к примеру есть таблица Employee и у него должно быть поле должность, так почему бы просто не создать в таблице сотрудника текстовое поле position ? Вместо ето-го нужно создать отдельную таблицу для должностей.

Вопрос: так чем же такой подход лучше ?
источник

D

Dmtr in DBA - русскоговорящее сообщество
А если у сотрудника вдруг будет две должности?
источник

A

Art in DBA - русскоговорящее сообщество
Dmtr
А если у сотрудника вдруг будет две должности?
Я бы тогда создал промежуточную таблицу где будет Id сотрудника и название должности (строкой )
источник

D

Dmtr in DBA - русскоговорящее сообщество
Ну плюс удобно иметь где то в таблице список должностей возможно
источник

A

Art in DBA - русскоговорящее сообщество
Какой лучше и почему ?
источник

A

Art in DBA - русскоговорящее сообщество
Вариант 1
create table Positions(
 Id int not null primary key identity,
 _Name nvarchar(100) not null check(_Name <> N'')
);
go


create table Emp(
 Id int not null primary key identity,
 _Name nvarchar(100) not null check(_Name <> N''),
 PositionId int not null foreign key references Positions(Id)
)
источник

A

Art in DBA - русскоговорящее сообщество
Вариант  2
create table Emp(
 Id int not null primary key identity,
 _Name nvarchar(100) not null check(_Name <> N''),
 Position nvarchar(100) not null check(_Name <> N'')
)
источник

A

Art in DBA - русскоговорящее сообщество
Я действительно не знаю какой лучше
источник

A

Art in DBA - русскоговорящее сообщество
по идее
источник

A

Art in DBA - русскоговорящее сообщество
если нужно будет изменить какй-то елемент то в первом варианте не прийдеться идти по всмем сотрудникам
источник

E

Etki in DBA - русскоговорящее сообщество
Art
Привет. хотел бы задать такой вопрос зачем нужно создавать таблицы с отдельными сущностями, к примеру есть таблица Employee и у него должно быть поле должность, так почему бы просто не создать в таблице сотрудника текстовое поле position ? Вместо ето-го нужно создать отдельную таблицу для должностей.

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

E

Etki in DBA - русскоговорящее сообщество
Ну и сами должности точно должны референситься через идентификатор, а не напрямую текстом. Задолаешься потом вориции Sr. Snr. Senior Chief chf Director 1C Programmer Software Enginner Developer приводить к одному виду.
источник