|
|
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
Вот нужно сделать таблицу, связывающую две другие в отношении многие-ко-многим, скажем People(PeopleID, ...) и Bank(BankID, ...) Можно сделать так: PeopleBank(PeopleID, BankID, primary clustered key (PeopleID, BankID)) + индекс (BankID, PeopleID) а можно так: PeopleBank(ID, PeopleID, BankID, primary clustered key (ID)) + 2 индекса, (PeopleID, BankID) и (BankID, PeopleID) вот какой способ предпочтительнее? В первом случае кластерный индекс составной и второй индекс будет больше, чем индексы во втором, но во втором зато уже 2 некластерных индекса и, кроме того, выборки в первом варианте, задействующие кластерный индекс, будут быстрее, и я выбираю первый вариант, но время от времени в разных бд встречается второй вариант, и вот интересно, почему. Возможно, второй вариант предпочтительнее в высоконагруженных системах, когда вставлять записей нужно много и часто. Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2015, 07:01 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
В варианте с ПК из одного ID дает выигрыш на стыке разработки клиента и сервера. Можно использовать универсальные приемы, механизмы, рассчитанные всегда на использование одного длинного целого айди для любой таблицы. Удобнее разрешать некоторые проблемы с данными, когда при неизменном ID в записи можно поменять одно или другое поле. В общем есть очень много практических резонов, которые проявляются при разработке приложений целиком, под ключ. По отдельности любой вопрос можно решить и через два поля, но по совокупности удобств работы с одним ID набирается "критическая масса". В итоге я всегда использую ПК автосчетчики или из одного ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2015, 09:23 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
ТС оцените будут ли у вас обращения к данной таблице по ID (читай иные связанные сущности)? Или будут преобладать операции поиска Человека по Банку и Банка по человеку? В зависимости от этого выбирайте один из двух обозначенных вариантов. Просто индекс ради индекса по ID - не вижу смысла создавать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2015, 11:30 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
какой вариант связывающей таблицы многие-ко-многим предпочтительнее Вообще-то такой вариант только один -- связывающая таблица. таблица многие-ко-многимВот нужно сделать таблицу, связывающую две другие в отношении многие-ко-многим, скажем People(PeopleID, ...) и Bank(BankID, ...) Можно сделать так: PeopleBank(PeopleID, BankID, primary clustered key (PeopleID, BankID)) + индекс (BankID, PeopleID) а можно так: PeopleBank(ID, PeopleID, BankID, primary clustered key (ID)) + 2 индекса, (PeopleID, BankID) и (BankID, PeopleID) вот какой способ предпочтительнее? Это один и тот же вариант. Поле ID там нужно только в случае, если связь выступает как самостоятельная сущность, у неё как правило есть атрибуты (но не обязательно), и на неё есть ссылки из других таблиц, ИЛИ наличия несоставного PK требует какое-то специфическое клиентское программное обеспечение. Это всё бывает очень и очень редко , и в 90% случаев никакой суррогатный ID для связи не нужен. Кроме этого, он вреден, поскольку занимает место, и без него всегда можно обойтись . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2015, 13:39 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
П-ЛВ варианте с ПК из одного ID дает выигрыш на стыке разработки клиента и сервера. Ничего он не даёт. Нет выигрыша. Другое дело, если у тебя на клиенте работает какой-то недоделанный самописанный ORM без поддержки составных ключей, ну, тогда -- да, никуда не деться. Нормальные ORM типа Hibernate поддерживают составные ключи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2015, 13:41 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто всё бывает очень и очень редко , и в 90% случаев никакой суррогатный ID для связи не нужен. Кроме этого, он вреден, поскольку занимает место, и без него всегда можно обойтись . ТС же привел причину, для чего нужно поле ID. Возможно, второй вариант предпочтительнее в высоконагруженных системах, когда вставлять записей нужно много и часто. Да, редко бывает так, что стоимость вставки в связующую таблицу значительно важнее стоимости выборки из нее - но это возможно . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2015, 13:55 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинТС же привел причину, для чего нужно поле ID. Возможно, второй вариант предпочтительнее в высоконагруженных системах, когда вставлять записей нужно много и часто. Это не причина, это -- предположение. И к тому же беспочвенное. С какого это вставка в таблицу с тремя полями и тремя индексами должна быть быстрее, чем вставка в таблицу с двумя полями и двумя индексами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2015, 16:19 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
таблица многие-ко-многими вот интересно, почемуПричина не техническая, а человеческая - пусть безобразно, но единообразно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2015, 16:43 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
таблица многие-ко-многима можно так: PeopleBank(ID, PeopleID, BankID, primary clustered key (ID)) + 2 индекса, (PeopleID, BankID) и (BankID, PeopleID) вот какой способ предпочтительнее? ... но время от времени в разных бд встречается второй вариант, и вот интересно, почему. ... Во втором варианте, можно добавить в таблицу PeopleBank дополнительные поля, например AccountNumber (номер счета в данном банке) и особо ничего переделывать не придется ))) "Чистую связь" (без доп данных на связке) NN встречал очень редко. А как только там появляются данные, составной ключ становится уже не настолько "очевиден" и вариант с сурогатным ключем значительно больше радует глаз. MasterZiv.... Это всё бывает очень и очень редко , и в 90% случаев никакой суррогатный ID для связи не нужен. Кроме этого, он вреден, поскольку занимает место, и без него всегда можно обойтись . Тут получается in depends от практики, опыта и предметной области Все что могу вспомнить и представить из реальных задач, скорее склонялось бы к применению суррогатного ключа. IMHO Ну и при проектировании системы лучше поддерживаться единообразия. Т.ч. если половина таблиц "красивее" с суррогатным ключем, то и остальную половину делаем так же и не паримся IMHO. А насчет вреден... это сильно сказано... когда в ключе начинают попадать реальные данные и они меняются, в сопровождении можно не хилый гемор схватить. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2015, 17:16 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
[quot Leonid Kudryavtsev Во втором варианте, можно добавить в таблицу PeopleBank дополнительные поля, например AccountNumber (номер счета в данном банке) и особо ничего переделывать не придется ))) в обоих можно добавлять. "Чистую связь" (без доп данных на связке) NN встречал очень редко. странно, а я -наоборот очень часто. А как только там появляются данные, составной ключ становится уже не настолько "очевиден" и вариант с сурогатным ключем значительно больше радует глаз. это не технический критерий. технический - суррогатный ключь - лишние 4 - 8 тут на запись. MasterZiv.... Это всё бывает очень и очень редко , и в 90% случаев никакой суррогатный ID для связи не нужен. Кроме этого, он вреден, поскольку занимает место, и без него всегда можно обойтись . Тут получается in depends от практики, опыта и предметной области Все что могу вспомнить и представить из реальных задач, скорее склонялось бы к применению суррогатного ключа. IMHO Ну и при проектировании системы лучше поддерживаться единообразия. Т.ч. если половина таблиц "красивее" с суррогатным ключем, то и остальную половину делаем так же и не паримся IMHO. опять не технический поход. по мне - хранить лишние никому не нужные данные -это уродство. А насчет вреден... это сильно сказано... когда в ключе начинают попадать реальные данные и они меняются, в сопровождении можно не хилый гемор схватить. IMHO ключи никогда не меняются. и тут они не должны меняться в обоих случаях. и еще раз - если ты вводишь лишнюю, не нужную, колонку, то ты должен это как то оправдать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2015, 01:42 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
авторВсе что могу вспомнить и представить из реальных задач, скорее склонялось бы к применению суррогатного ключа . IMHO Ну и при проектировании системы лучше поддерживаться единообразия. Т.ч. если половина таблиц "красивее" с суррогатным ключем, то и остальную половину делаем так же и не паримся IMHO. А насчет вреден... это сильно сказано... когда в ключе начинают попадать реальные данные и они меняются, в сопровождении можно не хилый гемор схватить . IMHO Из практических соображений эти два резона для однозначно диктуют суррогатный ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2015, 08:35 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
П-ЛавторВсе что могу вспомнить и представить из реальных задач, скорее склонялось бы к применению суррогатного ключа . IMHO Ну и при проектировании системы лучше поддерживаться единообразия. Т.ч. если половина таблиц "красивее" с суррогатным ключем, то и остальную половину делаем так же и не паримся IMHO. А насчет вреден... это сильно сказано... когда в ключе начинают попадать реальные данные и они меняются, в сопровождении можно не хилый гемор схватить . IMHO Из практических соображений эти два резона для однозначно диктуют суррогатный ключ. еще раз подчеркиваю, это доводы в стиле "я так хочу", "мне так нравится". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2015, 08:46 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
В общем, связывающая таблица, она и есть " просто таблица ". Что лучше составной ключ или суррогатный - думаю в форумах можно кучу флейма по данному вопросу найти и почитать. "Чистую" связку N:N вижу очень редко (вот вообще даже и не вспомнить, когда и зачем такое требовалось). В любом случае, там есть еще какие нибудь поля. И если "сферический" пример топик-стартера, действительно как бы 100% за составной ключ, то даже простейшее его усложнение (например добавить поле accountNumber) начинает приводить к гемору при отсутствия суррогатного ключа. Пусть это список счетов, по которому мы ведем расчеты с клиентом. Добавили мы поле accountNumber. Понятно, что ключа PeopleID, BankID уже не достаточно, т.к. в банке можно иметь много счетов (у меня в банке Санкт-Петербруг аж 4 штуку + кредит /счетом почему-то не считается))) / ). Все, редактируемое пользователем поле accountNumber попало в ключ и может меняться. Т.е. нарушение декларируемого Вами принципа. MasterZivключи никогда не меняются. и тут они не должны меняться в обоих случаях. Даже больше того, и со "сферической" таблицей всего с двумя полями (PeopleId,BankId), при реализации интерфейса (юзер френдли))) ) можно получить ситуацию "меняется ключ". MasterZivеще раз подчеркиваю, это доводы в стиле "я так хочу", "мне так нравится". Полностью согласен. А разве этого мало? ))) На мой взгляд это вполне достаточный довод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2015, 17:09 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevДобавили мы поле accountNumber. Понятно, что ключа PeopleID, BankID уже не достаточно Скорее, вместо BankId теперь AccountId. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2015, 17:23 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
Надо смотреть предметную область. У топик стартера сферическая табличка и сферический вопрос. А в реальной жизни "все не так очевидно" ( C ) дочь офицера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2015, 17:39 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
таблица многие-ко-многимвот какой способ предпочтительнее? В оракловой практике первый способ в целом предпочтительнее. Второй, пожалуй, имеет смысл тогда и только тогда, когда развязочная таблица обрастает атрибутами и в целом превращается в полноценную сущность. Особенно - когда уже к ней появляются дочерние (ссылающиеся на неё) таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2015, 21:09 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
DogenLeonid KudryavtsevДобавили мы поле accountNumber. Понятно, что ключа PeopleID, BankID уже не достаточно Скорее, вместо BankId теперь AccountId. Мне кажется, что если привязать к PeopleID поле AccountID, то тут велика вероятность изменения связи на 1:N (что-то есть сомнения, что в банках к одному счёту имеют доступ несколько пользователей), то есть тема топика изменилась. P.S. Хотя правильно заметили ранее, в другой предметной области (не банковской) может быть всё по-другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2015, 08:41 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineDogenпропущено... Скорее, вместо BankId теперь AccountId. Мне кажется, что если привязать к PeopleID поле AccountID, то тут велика вероятность изменения связи на 1:N (что-то есть сомнения, что в банках к одному счёту имеют доступ несколько пользователей), то есть тема топика изменилась. P.S. Хотя правильно заметили ранее, в другой предметной области (не банковской) может быть всё по-другому.Корпоративные счета, либо дубликат для жены, ребенка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2015, 09:28 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineDogenпропущено... Скорее, вместо BankId теперь AccountId. Мне кажется, что если привязать к PeopleID поле AccountID, то тут велика вероятность изменения связи на 1:N (что-то есть сомнения, что в банках к одному счёту имеют доступ несколько пользователей), то есть тема топика изменилась. P.S. Хотя правильно заметили ранее, в другой предметной области (не банковской) может быть всё по-другому. Угу. Но. Если много банков остается, то получается нормализованная схема, где человек вяжется к банку через аккаунт. AccountId и есть то, что связывает PeopleId с BankId m:n Но вообще это бессодержательное обсуждение уже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2015, 10:38 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
таблица многие-ко-многимВот нужно сделать таблицу, связывающую две другие в отношении многие-ко-многим, скажем People(PeopleID, ...) и Bank(BankID, ...) Можно сделать так: PeopleBank(PeopleID, BankID, primary clustered key (PeopleID, BankID)) + индекс (BankID, PeopleID) а можно так: PeopleBank(ID, PeopleID, BankID, primary clustered key (ID)) + 2 индекса, (PeopleID, BankID) и (BankID, PeopleID) вот какой способ предпочтительнее? В первом случае кластерный индекс составной и второй индекс будет больше, чем индексы во втором, но во втором зато уже 2 некластерных индекса и, кроме того, выборки в первом варианте, задействующие кластерный индекс, будут быстрее, и я выбираю первый вариант, но время от времени в разных бд встречается второй вариант, и вот интересно, почему. Возможно, второй вариант предпочтительнее в высоконагруженных системах, когда вставлять записей нужно много и часто. Модератор: Тема перенесена из форума "Microsoft SQL Server". Если бы Вы были знакомы с теорией баз данных, то знали бы, что "способы" происходят от использования, в данном случае, реляционной модели данных, в которой связи между типами сущностей не поддерживаются. Тем не менее, если строго следовать теории баз данных (то есть, учитывать, что у связей не может быть свойств, связи всегда бинарные и всегда двухсторонние), то оба Ваши способа не верны. Верным будет создавать две "таблицы" на каждую связь (причем, независимо от мощности связи). В Вашем примере, это выглядит в "реляционной системе" примерно так: PeopleBank(PeopleID, BankID, primary clustered key (PeopleID, BankID)) BankPeople(BankID, PeopleID, primary clustered key (BankID, PeopleID)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2015, 22:19 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
MasterZiv Поле ID там нужно только в случае, если связь выступает как самостоятельная сущность, ... Все же, скорей всего, если кто-то захочет считать связь сущностью - это его дело при толковании МД. А ID может дать пользу из-за того, что не меняется. Остальные поля могут меняться, что может привести к траблам при программировании, если надо найти какая запись менялась (что было до изменения). Сталкивался на практике. А так есть ID и не о чем париться. Кроме того, единообразие: у все таблиц есть ID. Одинаковый стиль при работе со всеми без относительно модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 13:17 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
vadiminfoА ID может дать пользу из-за того, что не меняется. Остальные поля могут меняться, что может привести к траблам при программировании, если надо найти какая запись менялась (что было до изменения). Это как раз проще разрулить тем, что для элементов связующей таблицы (во всяком случае - для ключевых полей) не определена операция "изменение" - только "добавление" и "удаление". Действительно, что логически понимается под "связь банка и человека изменилась" - слабо понятно. "Связь с одним банком перестала действовать, связь с другим банком - начала действовать" - это да, понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 14:19 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинЭто как раз проще разрулить тем, что для элементов связующей таблицы (во всяком случае - для ключевых полей) не определена операция "изменение" - только "добавление" и "удаление". Действительно, что логически понимается под "связь банка и человека изменилась" - слабо понятно. "Связь с одним банком перестала действовать, связь с другим банком - начала действовать" - это да, понятно. С одной стороны в БД всегда как "изменение" присуще. Как там м почему меняются связи в БД зависит от реализации проги. Зачем мне проетировщику БД думать как пишет прогу проггер. Он поменял в проге ид банка и человов массово, а другой части проги ему надо знать в каком каждый был до изменения. У меня есть ID и я легко отвечу на этот вопрос. Мое дело предоставлять требуемую инфу как можно проще, а не говорить ему как программировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 14:37 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
vadiminfo Мое дело предоставлять требуемую инфу как можно проще, а не говорить ему как программировать. Не совсем так - иначе можно сказать "ну да, поменял я в базе что-то хекс-редактором - ну-ка дай мне инфу, чо как было до этого?" База предоставляет прикладному программисту интерфейсы - "применишь такую-то операцию с такими-то параметрами - получишь такой-то результат". Имхо лучше, чтобы в интерфейсе не было метода "изменить связь банка и человека", были методы "добавить связь" и "удалить связь". Информация, что связь "Петров-ВТБ" была раньше связью "Иванов-Сбер" - бессмысленна с точки зрения предметной области (примерно настолько же, насколько информация что блок данных, который сейчас занимает запись с этой связью, раньше был выделен под блоб со сканом договора ), поэтому не нужно и вредно предоставлять эти данные прикладному программисту. Получить список удаленных связей [за период]? Пожалуйста. Получить список добавленных связей [за период]? Пожалуйста. Получить информацию, какая добавленная связь "была" какой удаленной? - извините, такой информации нет и не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 15:07 |
|
||
|
какой вариант связывающей таблицы многие-ко-многим предпочтительнее
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин Не совсем так - иначе можно сказать "ну да, поменял я в базе что-то хекс-редактором - ну-ка дай мне инфу, чо как было до этого?" База предоставляет прикладному программисту интерфейсы - "применишь такую-то операцию с такими-то параметрами - получишь такой-то результат". Имхо лучше, чтобы в интерфейсе не было метода "изменить связь банка и человека", были методы "добавить связь" и "удалить связь". Информация, что связь "Петров-ВТБ" была раньше связью "Иванов-Сбер" - бессмысленна с точки зрения предметной области (примерно настолько же, насколько информация что блок данных, который сейчас занимает запись с этой связью, раньше был выделен под блоб со сканом договора ), поэтому не нужно и вредно предоставлять эти данные прикладному программисту. Получить список удаленных связей [за период]? Пожалуйста. Получить список добавленных связей [за период]? Пожалуйста. Получить информацию, какая добавленная связь "была" какой удаленной? - извините, такой информации нет и не будет. Не хекс-редактором. А в коде. Одна ф-я меняет поля. А другая в той же транзакции еще что-то меняет, но на основе, того, что раньше было в измененной записи. Я просто не помню примера, но ситуация была на практике. Проггер сказал, что он чего-то не может сделать что-то из-за того, что не знает что было до изменения. Потому пришлось добавлять ID. И мне и не должно быть дело до интерфейсов. Он спросил как узнать что было до изменения, я ответил. БД моя, а все остальное (каким должен быть интерфейс не мое). Разделение труда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2015, 16:38 |
|
||
|
|

start [/forum/search_topic.php?author=Sabrina&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 650ms |
| total: | 825ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...