Levelup
Июль 13, 2012 10:01:03
Всем привет!
Имеются 4 модели, у всех есть поле id (varchar). Подскажите, пожалуйста, как лучше реализовать поиск конкретного id по всем моделям? На данный момент я импортирую 4 модели и циклом прохожусь по всем имеющимся id. Как-то совсем не айс. Есть же способы получше? Может использовать поле ManyToMany?
Спасибо.
fata1ex
Июль 13, 2012 10:36:08
Первое что пришло в голову: присвоить различным моделям разные виды id. Грубо говоря, id первой модели начинаются на 1, второй - на 2 и тд. Ну и сделать свой менеджер, который ищет лишь в одной модели, исходя из id. Причём тут m2m не понял :) Может, если подробнее расскажите про задачу и модели, найдутся другие варианты. Или ещё кто подскажет.
Saturn
Июль 13, 2012 10:45:54
Levelup
id (varchar)
странно, почему тип поля не integer.
fata1ex
Июль 13, 2012 11:00:15
А кто сказал, что поле id должно быть integer?
Levelup
Июль 13, 2012 11:24:52
Больше рассказывать собственно нечего.
Да, поиск осуществляется именно по первым буквам id, то есть, если P1234, то ищет в модели Product. Поэтому и не int, кстати. Но все же, хочется чего-то более утонченного:)
Saturn
Июль 13, 2012 23:00:20
fata1ex
А кто сказал, что поле id должно быть integer?
Я если честно, еще с таким поиском не сталкивался.
Но если правильно построить структуру БД то может и varchar здесь лишний.