Сап, /б/! Нуждаюсь в вашей помощи. Дано: есть 2 таблицы. 1 таблица авторов - ИД, имя, фамилия, оценка. 2 таблица книг - ИД, название, ид-автора, оценка. Заполнение этих таблиц идет собственно через 2 формы. Если создание записи автора может макака написать, то с записью книги я уже сижу который день. Я смог добавить в лист выбора полное имя автора, но запись не идет. Также выводить таблицу для чтения нужно будет вместо ИД выдавать полное имя.
Верю в силу двачика.
Побампаю несколько раз, надеюсь взлетит и мне поможет величайший
ОП в треде. смог намутить писанину в таблицу, осталось разобраться, чтобы ИД писался нормально (а то сейчас несостыковки), ну и собственно, чтобы вместо ИД авторов фулл имя автора писалось. Спасибо всем, кто откликнулся
>>233414157 Чел, ты так ничего и не понял... :-( Нельзя так таблицы строить, препод тройку поставит. Анонов не слушаешь, так хоть про нормальные формы сходи почитай.
>>233409526 (OP) Тебе бы в в форме добавить какое-то скрытое поле, с айдишником выбранного автора. Его и будешь использовать в запросе на добавление автора к книге. Но все айдишники в одну колонку я бы не запихивал, это хуйня. Лучше всего так как этот пишет >>233414578 Но ты сперва разберись как ты айдишник будешь получать, чтобы лишних подзапросов не делать.
>>233415088 На каких объемах, сумасшедший? Это обычная лаба, ты же понимаешь, да? Тут всего два автора и микроскопический объем. Нахуя городить промежуточную таблицу?
>>233415287 >На каких объемах, сумасшедший? Это обычная лаба, ты же понимаешь, да? Тут всего два автора и микроскопический объем. Нахуя городить промежуточную таблицу?
Чтобы научиться правильно моделировать данные в реляционной базе, не?
>>233415239 суть в том, что потом это прогонять тестером надо, который несколько раз создает одинаковые записи, и на каждую запись ему нужно выдать верный id
>>233415380 Чтобы научиться правильно моделировать данные -- надо делать это многократно и чтобы твою модель обсирали знающие люди. А просто с самого начала загрузить сложными вещами это долбаебизм
>>233415511 Хуевый это тестер, надо написать тестер с разными именами. Но можно и с одинаковыми, но тогда тебе надо сразу доставать айдишник при селекте и каким-то образом его скрывать. Или можно нахуй не скрывать, а просто выводить "Семен Лопатович (11)", где 11 - это айдишник. Потом распарсить строку регекспом и забрать айдишник из неё. Это если тебе совсем поебать
>>233415641 >Чтобы научиться правильно моделировать данные -- надо делать это многократно и чтобы твою модель обсирали знающие люди. А просто с самого начала загрузить сложными вещами это долбаебизм
Мне прямо не хочется тебе грубить, но это не правильно. Хочеть простую задачу - ставь задачу так, чтобы был 1 автор у книги. Будет тебе простое 1:n. А делать n:m через несколько столбцов - за это у нас во дворе пиздят только в путь
>>233415942 Навскидку, можно взять айдишник последней записанной книги и прибавить 1. Но тут получается race condition, если несколько людей одновременно будут записывать. Давай рассказывай, как правильно
>>233416080 >Навскидку, можно взять айдишник последней записанной книги и прибавить 1. Но тут получается race condition, если несколько людей одновременно будут записывать. >Давай рассказывай, как правильно
В разных базах есть средства получить в транзакции айдишник последней вставленной, но не закоммиченной записи в таблице в ЭТОЙ транзакции. База резервирует айдишник, если транзакция откатывается, то он не переиспользуется и будет разрыв в айдишниках. В классическом sql такого нет, надо смотреть конкретную базу данных.
Поэтому нельзя использовать auto increment id для вещей типа уникальный номер инвойса, потом клиент будет рассказывать налоговой, почему у него прогалы в отчетности
Пиздец оп дегенерат. Ты вообще в знаешь что такое связи и какими они бывают? Про нормальные формы я вообще молчу. Ахуеть конечно. Хранить два айдишника в одном поле аххаах
>>233410217 ОП, гугли связь многие-ко-многим. Поймёшь зачем нужна третья таблица. первые несколько постов вообще не понимал о чем речь, а когда рассмотрел на пике несколько внешних ключей в одной строке - не сразу поверил что так можно спроектировать
>>233417050 А да, забыл добавить, видел решения, где обходили это так: не юзаем авто инкрементальные id, а сами на сервер сайде генерим GUID. Тогда ты знаешь ID до вставки в базу и все просто. По мне - уебанство, удачи службе поддержки которая будет ебаться с guid'ами при разборках проблем вместо обычных чисел. Ну и размер таблиц, производительность тоже будет хуже
Кладезь мудрости дизайна баз данных читаю в этом тредю я. Сам вставлял в таблицу колонки с константами 0 и 1, двойные дублирующие колонки и вообще клал на нормальные формы. Энтерпрайз, 300к/с.
>>233409526 (OP) А вообще, если по делу - греби айдишник по имени, лол. Что сложного-то? У тебя навряд ли база будет на 100500 авторов и поиск по пару-мегабайтной базе будет проходить моментально. Не красиво, да, но для решения задачи самое то не будешь же ты блять эластиксёрч прикручивать. У тебя даже база на фронте, ёбаный ебать. Можешь ещё угореть и подгружать сразу ID и ФИО всех авторов, а в поле выдавать только ФИО. Подзаебаться придётся конкретно тебе ты явно курсач какой-то пилишь. Можно даже по совету >>233415052 попробовать, но не слушай >>233414578 - он долбоёб клинический
>>233416080 А сколько у нас одновременно ОПЕРАТОРОВ ИНФОРМАЦИОННОЙ СИСТЕМЫ? Если там одна баба Зина сидеть будет, то похую вообще и не заморачивайся над этой хуетой