|
|
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Добрый день. Банальная задача. В таблице нужно выделить какую либо одну запись. (сделать главной) Для примера - сделать одну картинку из альбома - главной картинкой профиля/альбома. Таблица пользователя: -------------------------- UserId UserName Альбом: -------------------------- PictureId UserId PictureName Вижу два варианта: 1: (добавить поле картинке) ------------------------------- PictureId UserId PictureName IsDefault = True (главная) 2: (добавить поле пользователю) ----------------------- UserId UserName PictureId (главная) Какой предпочесть? Альтернативы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 11:47 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Автор100500, Для начала определиться что делать - картинку профиля или альбома? Дальше соответственно в нужной таблице поле с признаком, по которому дальше достаточно будет Order By ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 12:01 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Злой БобрДля начала определиться что делать - картинку профиля или альбома? Нет принципиальной разницы, пример был наглядный. Может быть и картинка товара ) Злой БобрДальше соответственно в нужной таблице поле с признаком, по которому дальше достаточно будет Order By ... Это первый? А лишние телодвижения для проверок что выбранна только одна запись? И при замене на другую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 12:10 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
On 07/23/2012 12:47 PM, Автор100500 wrote: > Какой предпочесть? Альтернативы? 2-ой, этот.> > 2: (добавить поле пользователю) > ----------------------- > UserId > UserName > PictureId (главная) > Причина -- это быстрее будет работать и не нужен доп. индекс на таблицу картинок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 12:47 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Мне он тоже больше нравится, но смущает рост дополнительных зависимостей в таблице пользователя. Думал над вариантом - 3 (возможно картинку не выбрали) Таблица ГлавныеКартинки: --------------------------------- UserId PictureId Но тут рост количества таблиц, да и связь один к одному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 13:20 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Автор100500возможно картинку не выбрали Тогда в поле связи будет NULL. И что? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 13:46 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovАвтор100500возможно картинку не выбрали Тогда в поле связи будет NULL. И что? Это я для оправдания дополнительной таблицы ) Но мне кажется такая табличка выглядит мрачно. --------------------------- UserId UserName PictureId - NULL ShirtId - NULL ShoesId - NULL WeaponId - NULL ... .. . etc .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 14:20 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Автор100500Но мне кажется такая табличка выглядит мрачно. Когда кажется - плюй через левое плечо. Что-нибудь весомее эстетической неудовлетворённости есть? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 14:30 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЧто-нибудь весомее эстетической неудовлетворённости есть? Много зависимостей, к примеру, нет возможности отсоединить\добавить модуль "Альбом", без правки таблицы пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 14:39 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Автор100500нет возможности отсоединить\добавить модуль "Альбом", без правки таблицы пользователя. А зачем для введения альбомов править пользователя? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 14:42 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
В лоб: user (...) album (user_id, is_default, ...) picture (album_id, is_default, ...) Задолбали светы из Иваново. Где вас находят и кто вас учит проектированию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 14:51 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА зачем для введения альбомов править пользователя? А PictureId добавить? Нельзя ведь угадать заранее, все модули которые добавят пользователю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 15:08 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Автор100500Нельзя ведь угадать заранее, все модули которые добавят пользователю. Но можно в скрипт добавления модуля внести соответствующие команды. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 15:21 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Автор100500Dimitry SibiryakovА зачем для введения альбомов править пользователя? А PictureId добавить? Нельзя ведь угадать заранее, все модули которые добавят пользователю. вариант со ссылкой еще лучше тем что удалить предпочитаемую запись просто так не получится (если есть fk), править пользователя не нужно, потому что это не "пользователь", а "предпочтения пользователя". структура этих предпочтений может меняться предположительно заметно чаще структуры пользователя, в одну таблицу имхо не стоит сваливать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 15:38 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
А PictureId добавитьправить пользователя не нужно, потому что это не "пользователь", а "предпочтения пользователя". структура этих предпочтений может меняться предположительно заметно чаще структуры пользователя, в одну таблицу имхо не стоит сваливать. Это в принципе третий вариант. (таблица "предпочтения пользователя" 1 : 1) В общем вижу что - вариант 2 хорош в случае, когда предпочтений относительно не много. Вариант 3 - если предположительно структура будет менятся и предпочтений много. В пользу первого - аргументов мало, хотя часто встречаем в примерах и в коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 17:03 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Автор100500Добрый день. Банальная задача. В таблице нужно выделить какую либо одну запись. (сделать главной) Для примера - сделать одну картинку из альбома - главной картинкой профиля/альбома. Таблица пользователя: -------------------------- UserId UserName Альбом: -------------------------- PictureId UserId PictureName Вижу два варианта: 1: (добавить поле картинке) ------------------------------- PictureId UserId PictureName IsDefault = True (главная) 2: (добавить поле пользователю) ----------------------- UserId UserName PictureId (главная) Какой предпочесть? Альтернативы? 40 лет назад эта задача называлась "главная строка накладной", и имела два совсем других решения:) 1) связь с другой семантикой (поскольку Ваша система связи наверняка не поддерживает, значит еще один fk в картинках); 2) может потребоваться иметь и вторую по значимости картинку и третью; поэтому поле называется "приоритет" и имеет соответствующий тип... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 22:20 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Бредятинаможет потребоваться иметь и вторую по значимости картинку и третью; поэтому поле называется "приоритет" и имеет соответствующий тип... Данное решение становится самым логичным, как только появляется разграничение доступа для отдельных записей. Используется в качестве главной наиболее приоритетная доступная запись. Я б изначально так и делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2012, 23:52 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Автор100500Злой БобрДля начала определиться что делать - картинку профиля или альбома? Нет принципиальной разницы, пример был наглядный. Может быть и картинка товара ) Да вся разница только в том в какой таблице ставить признак. Если и так и так, то ставить в двух таблицах. Ну а отбор делать в зависимости от того что загружается на выходе. Автор100500Злой БобрДальше соответственно в нужной таблице поле с признаком, по которому дальше достаточно будет Order By ... Это первый? А лишние телодвижения для проверок что выбранна только одна запись? И при замене на другую. По идее удобней делать что б первым шла именно заглавная картинка. Но можно и задом наперед. Просто если потом после вас кто-то будет пользоваться то непреминут вспомнить вас незлым тихим словом. Поэтому лучше сразу сделать так как делает большинство. А триггеры зачем по вашему придумали? Вот и я о том же. Повесьте триггер и забудьте о проверках в приложении. Реально экономит время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 02:13 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Бредятина2) может потребоваться иметь и вторую по значимости картинку и третью; поэтому поле называется "приоритет" и имеет соответствующий тип... Первый вариант я плохо понял. На счет второго - условия могут быть разные, например - первая картинка, последняя, рандом etc. Меня больше интересует вариант, когда это, тупо назначается пользователем, без какой либо логики. Имхо если нет особых условий то это излишне усложняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 10:36 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
On 07/23/2012 02:20 PM, Автор100500 wrote: > Мне он тоже больше нравится, но смущает рост дополнительных зависимостей в > таблице пользователя. Ерунда. Зависимости ничего не стоят. > Думал над вариантом - 3 (возможно картинку не выбрали) > Но тут рост количества таблиц, да и связь один к одному. Это не один к одному. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 10:37 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Злой БобрПовесьте триггер и забудьте о проверках в приложении. Реально экономит время. Не вижу в написании триггеров, по каждому пустяку - реальной экономии времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 10:40 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто не один к одному. почему? Пользователи ---------------------------- UserId UserName Предпочтения пользователя ---------------------------- UserId DefaultPictureId ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 11:04 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
MasterZivЕрунда. Зависимости ничего не стоят. К примеру - удаление картинки будет затрагивать таблицу пользователей. Про модули уже писал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 11:31 |
|
||
|
Выделение одной записи
|
|||
|---|---|---|---|
|
#18+
Автор100500удаление картинки будет затрагивать таблицу пользователей. И?.. Чем тебя это волнует? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 11:38 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37889844&tid=1541601]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
3ms |
| others: | 199ms |
| total: | 436ms |

| 0 / 0 |
