
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.07.2015, 22:34:05
|
|||
|---|---|---|---|
|
|||
Категории для задачника, как лучше реализовать |
|||
|
#18+
Привет, форумчане. Для моего проекта необходимо реализовать категории для задач, но так как проектировщика базы нет, то очень хотелось бы спросить у вас совета, чтобы не оплошаться. Итак, попробую описать, есть категория "Личное" и она доступна лишь Васе. Это могло бы выглядеть вот так: автор::tasks id | name | author | cat 1 | Задача | 3 | 1 автор::category id | user_id | name 1 | 3 | Личное А ещё есть Петя, в задачнике у него категория "Работа". Но здесь Петя решил создать категорию с точно таким же названием, как у Васи, т.е. "Личное". Получается, здесь возникает избыточность данных? Неужели для этого нужно ещё одну таблицу создавать? И наконец хотелось бы дать возможность сделать публичные категории. Думал для этого поможет enum, но ошибся. Может мне лучше использовать связь "многие ко многим"?. Очень надеюсь на поддержку, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.07.2015, 23:07:21
|
|||
|---|---|---|---|
Категории для задачника, как лучше реализовать |
|||
|
#18+
А с чего бы Личная категория Васи стала ещё и категорией Личное Пети? Одноимённости тут явно недостаточно... Наличие одноимённых категорий в данном случае - нормально. Ведь категория идентифицируется не по наименованию, а по её уникальному индексу. Ну или, если не нравится синтетический ключ, то по комбинации полей (Наименование, Пользователь). И связь с пользователями типа один-много. А вот таблица прав доступа - это много-много. Может же Вася дать к своей категории Личное тому же Пете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.07.2015, 09:12:34
|
|||
|---|---|---|---|
|
|||
Категории для задачника, как лучше реализовать |
|||
|
#18+
Думаю вы правы, но никто кроме самого юзера не имеет доступа к другим категориям. Я попробую сделать так как задумал изначально - буду вставлять в поле айдишник юзеров, но всё же по прежнему открыт для предложений. Каким образом лучше именовать первичный ключ? Не будет ли ненормально, если везде будет Id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.07.2015, 10:25:01
|
|||
|---|---|---|---|
|
|||
Категории для задачника, как лучше реализовать |
|||
|
#18+
ExoticnessДумаю вы правы, но никто кроме самого юзера не имеет доступа к другим категориям. Я попробую сделать так как задумал изначально - буду вставлять в поле айдишник юзеров, но всё же по прежнему открыт для предложений. Каким образом лучше именовать первичный ключ? Не будет ли ненормально, если везде будет Id? это нормально везде id - так по умолчанию работает куча фреймворков.... но твоя творческая душа верно вучствует - это тупо. (пить нынче тоже нормально, а не пить совсем не нормально :) ) если таблица для понятия cat - то её имя cats первичный ключ catId (idcat можно так, но люди говорят что мы читаем слева направо, поэтому надо левее болле общее, а правее более конкретное) в другой таблице не как лохи называть ссылку на категорию parentId - особенно исходя из того что тут нету наследования, и следовательно нету родителей а назвать таблице tasks полле ссылку catId - очень хорошо если у тебя получиться что где бы в базе не присутсвовало catId сразу можно зуб давать что это везде одно и тоже значение. - тоесть несмотря на код создания таблиц ты сразу знал, если в двух таблицах есть поля catId то это точно можно делать джойин по этому полю. для него индекс создать назвав его FK_tasks_catId - внешний ключ таблицы tasks на значение catId. другие индексы AK_table_field - альтернативный ключ - поле тоже уникальное, и может быть использованно для идентификации записи на равне с первичным ключом EK_table_field - дополнительный ключ - просто индекс по полю... или EK_table_field1_field2_field3 для составного индекса... чтобы читая это сразу понимать что там. а для твоей задачи, и вообще, помагает мыслить первичными ключами.... название категории входит в первичный ключ? - нет, являеться альтернативным ключом?(ты хочешь чтобы по названию категории можно было сразу сказать о чом речь? нет) значит его не расматриваем... есть catId есть userId у тебя категория любая одного или нескольких юзеров? одного, значит рядом с catId должно быть userId(ссылка) на юзера а все остальные поля это обвеска этих ключевых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1832964]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
60ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 323ms |

| 0 / 0 |
