Timur
пишет access denied for user in localhost
Dmitriy
I have two tables (Users and UserRole)
Illia
I have two tables (Users and UserRole)
есть ещё такой варик: читать на стаковерфлоу не только вопрос, но и ответ
Dmitriy
Ну прочитай же.
Dmitriy
У меня при таком, лишних таблиц не создается. Java, SQL Server
Illia
У меня при таком, лишних таблиц не создается. Java, SQL Server
в таком случае для моего примера выше какие две таблицы ты бы создал?
Dmitriy
В смысле пользователи и роли ?
Illia
В смысле пользователи и роли ?
да, один пользователь может иметь много ролей и одна роль может соответствовать многим пользователям
Евгений
Столкнулся с самой большой проблемой при проектировании приложения. Как назвать модель (и таблицу соответственно)? :) Предположим есть Организация. И есть возможность предложить добавить организацию. Как назвать моель для таких предложений/заявок?) Пихать в общую таблицу организаций с другим статусом не вариант в моём случае
Dmitriy
Illia
Теперь давай добавим для каждой роли описание
Dmitriy
Ты действительно думаешь, что это сложно ?
Illia
Ты действительно думаешь, что это сложно ?
Нет, это просто, для этого существуют М:М Интересно как ты уместишь это в двух таблицах
Dmitriy
И главное что сейчас, из за неумеющегу гуглить я полезу в проект ?
Dmitriy
http://pogugli.com/?323736
Nik
у тебя тут не м2м если чо
Dmitriy
У меня там что угодно может быть.
Illia
У меня там что угодно может быть.
Если хочешь аргументировать свою точку зрения, то добавь к роли описание
Timur
И главное что сейчас, из за неумеющегу гуглить я полезу в проект ?
Он имеет ввиду что должна быть промежуточная связующая таблица с полe id, user_id, role_id таблица. Без нее получится хрень без описания
Timur
ролей
Dmitriy
ой...
Dmitriy
что за описания ?
Timur
А в целом это возможно с двумя таблицами. В UserRole будет просто user_id, role (не role_id)
Dmitriy
Я могу сколько угодно ролей назначить
Timur
Не спорю
Dmitriy
ну сколько в стрингу влезет
Timur
То есть?
Dmitriy
могу даже больше, если сурово извратиться )))
Timur
Типа: "admin, editor, manager"?
Dmitriy
С Filestream буду в поле брать из файла
Timur
Вот такое значение в одной записи в users?
Dmitriy
но это извращение чисто теоретическое
Timur
Типа id: 5 role: "admin,manager"
Timur
?
Illia
но это извращение чисто теоретическое
а теперь давай чисто практически
Illia
по всем канонам нормализации
Dmitriy
вроде такого
Timur
Теоретическое извращения тут нет смысла обсуждать
Illia
вроде такого
это нарушение 1нф, иди свои ссылки перечитай
Dmitriy
Как с вами тяжело...
Illia
Как с вами тяжело...
Потому что ты начал речь о "теоретических извращениях", а ссылки кидал на информацию про нормализацию
Dmitriy
на теоретических извращениях я вроде закончил
Dmitriy
или нет ?
Illia
или нет ?
окей, вернёмся к вопросу есть пользователи (name, email, status), если роли (name, description) как уместить в 2 таблицы?
Dmitriy
Выше уже написали
Illia
Выше уже написали
кто написал?
Daniil 👾
окей, вернёмся к вопросу есть пользователи (name, email, status), если роли (name, description) как уместить в 2 таблицы?
а что тут сверхсложного? Одна таблица - пользователи, другая - роли. Всё. С третьей (pivot) удобнее, но можно и обойтись.
Stanislav
В общем виде есть такие модели (структура передана в сути): ` / * Structure: id | transaction_id | code */ class SmsConfirmation extends Model { public function transaction() { return $this->belongsTo(Transaction::class, 'transaction_id', 'id'); } } / * Structure: id | wallet_from | wallet_to */ class Transaction extends Model { public function wallet() { return $this->belongsTo(Wallet::class, 'wallet_from', 'id'); } public function smsConfirmation() { return $this->hasMany(SmsConfirmation::class, 'transaction_id', 'id'); } } /** * Structure: id | phone */ class Wallet extends Model { public function transactions() { return $this->hasMany(Transaction::class, 'wallet_from', 'id'); } } ` Пытаюсь вызвать SmsConfirmation::first()->transaction->wallet->phone; , получаю: "message": "Trying to get property 'phone' of non-object", В чем может быть проблема?
Alex
что мы выиграем еслии уберем 3-ю таблицу? бессмысленное обсуждение. тогда на монго переходите
Illia
а что тут сверхсложного? Одна таблица - пользователи, другая - роли. Всё. С третьей (pivot) удобнее, но можно и обойтись.
(у пользователя может быть много ролей, может ты не полностью разговор читал)
Illia
https://laravel.com/docs/5.6/eloquent-relationships#one-to-many
я же говорю, одному пользователю может соответствовать много ролей
Daniil 👾
А я ссылку на что скинул?)
Daniil 👾
A "one-to-many" relationship is used to define relationships where a single model owns any amount of other models.
Maksim (Ellrion)
Не дай бог с таким на проекте встретиться)
Illia
https://laravel.com/docs/5.6/eloquent-relationships#one-to-many
а в этом примере комментарий соответствует *одному* посту
Daniil 👾
Перевожу - одна модель имеет связь с множеством других моделей.
Daniil 👾
Собственно отношение так и называется - Один ко многим
Illia
Перевожу - одна модель имеет связь с множеством других моделей.
Повторюсь, пользователю может соответствовать МНОГО ролей, роль может относиться ко МНОГИМ пользователям
Illia
Где тут один ко многим?
Daniil 👾
Что мешает прикрутить третью таблицу и не парить себе мозг?
Maksim (Ellrion)
Я могу сколько угодно ролей назначить
А ещё ты можешь проебаться из за ограничения по длине; ещё искать пользователей с ролью определенной ты будешь через неэффективный лайк. А если нужно сразу с двумя ролями то вообще туши свет. А ещё ты пошлешь нафиг стондартный релейшен лары и все его возможности.
Illia
Что мешает прикрутить третью таблицу и не парить себе мозг?
Да ничего не мешает, дискуссия началась с мнения @PM5000 о том, что промежуточные таблицы нарушают принципы нормализации
mr.
Они наоборот для нормализации и придуманы
mr.
Даже в моей шараге такие основы проектирования СУБД были
mr.
И как вообще м:м сделать без пивот если array типа нету в СУБД? Лол
Illia
И как вообще м:м сделать без пивот если array типа нету в СУБД? Лол
Глянь то, что выше кидали по этому поводу, там забавно 😂
Maksim (Ellrion)
И как вообще м:м сделать без пивот если array типа нету в СУБД? Лол
Изи запихаем в стрингу ограниченной длины список с делемиторами) Надо ещё делемитор выбрать нестандартный тильду там например) а то запятая скучно
Illia
😂
Daniil 👾
можно дико извратиться с json колонками :D
Illia
локально, но поймёшь
Daniil 👾
бесконечно длинными для role
Maksim (Ellrion)
Я кстати ещё понял бы если бы таблицу ролей вообще не делали и колонка была джейсон
Stanislav
Народ, нид хелп ))) не работает, и не понятно, почему В общем виде есть такие модели (структура передана в сути): /** * Structure: id | transaction_id | code */ class SmsConfirmation extends Model { public function transaction() { return $this->belongsTo(Transaction::class, 'transaction_id', 'id'); } } /** * Structure: id | wallet_from | wallet_to */ class Transaction extends Model { public function wallet() { return $this->belongsTo(Wallet::class, 'wallet_from', 'id'); } public function smsConfirmation() { return $this->hasMany(SmsConfirmation::class, 'transaction_id', 'id'); } } /** * Structure: id | phone */ class Wallet extends Model { public function transactions() { return $this->hasMany(Transaction::class, 'wallet_from', 'id'); } } Пытаюсь вызвать SmsConfirmation::first()->transaction->wallet->phone; , получаю: "message": "Trying to get property 'phone' of non-object", В чем может быть проблема?