|
|
|
Помогите правильно продумать структуру таблиц 2
|
|||
|---|---|---|---|
|
#18+
Суть задачи: есть k форм с m групп по n опций т.е. что-то вида группа 1: опция 1.1, опция 1.2, ... опция 1.n ... группа m: опция m.1, опция m.2, ... опция m.n В каждой группе можно выбрать одну опцию, при выборе одной опции в каждой группе нужно получить результат сохраненный в базе, но существуют заданные пользователем зависимости так например при выборе опции 1.1 могут быть не доступны опции 2.2-2.n и к примеру опция 3.1. Результат выбора нужно сохранить в отдельной таблице так чтобы можно было восстановить весь набор опций и результат. Так же результатом выборке из базы нужно получить удобную структуру для того, чтобы при выборе одной из опций можно было заблокировать не связанные с ней (не доступные) опции во всех остальных группах. У кого какие идеи по реализации структуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 09:49:10 |
|
||
|
Помогите правильно продумать структуру таблиц 2
|
|||
|---|---|---|---|
|
#18+
KriziunУ кого какие идеи по реализации структуры?количество групп/опций может меняться или жёстко задано раз и навсегда? эти опции по отдельности потом где-то ещё в работе базы участвуют или всё, что с ними надо делать - хранить и выдавать целыми блоками? KriziunТак же результатом выборке из базы нужно получить удобную структуру для того, чтобы при выборе одной из опций можно было заблокировать не связанные с ней (не доступные) опции во всех остальных группах .выделенное - задача интерфейса, никак не БД максимум, что тут можно требовать от БД - выдать список "разрешительно-запретительных" правил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 12:26:03 |
|
||
|
Помогите правильно продумать структуру таблиц 2
|
|||
|---|---|---|---|
|
#18+
tanglirколичество групп/опций может меняться или жёстко задано раз и навсегда? эти опции по отдельности потом где-то ещё в работе базы участвуют или всё, что с ними надо делать - хранить и выдавать целыми блоками? Может меняться, все опции участвуют в дальнейшее работе системы как по отдельности так и сохраненными наборами. tanglirвыделенное - задача интерфейса, никак не БД, максимум, что тут можно требовать от БД - выдать список "разрешительно-запретительных" правил Это понятно, вопрос в том как минимизировать и/или упростить, обрабатываемый в дальнейшем, резалтсет, что напрямую зависит от структуры. И ещё уточнение количество опций в разных группах одной формы может быть различно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 12:43:59 |
|
||
|
Помогите правильно продумать структуру таблиц 2
|
|||
|---|---|---|---|
|
#18+
Kriziun, а что тогда думать, трясти надо :) groups:{id,name,...} options:{id,idgroup,name,...} users:{id,name,...} selections:{iduser,idoption,flag,...} Обработку (запись/выдачу наборов, ну хотя бы запись) - через хранимки, там же и проверять валидность введённых данных. Как хранить правила - ну, допустим, так rules:{id,name} rules_details:{idrule,idoption,rtype,value} (ид правила, ид опции,исходное условие/результат, значение) Т.е., например, "при выборе опции 1.1 могут быть не доступны опции 2.2-2.n и к примеру опция 3.1" запишется как idruleidoptionrtypevalue1'1.1'111'2.2'20............1'2.n'201'3.1'20(вместо идшников пишу имена опций , "не доступны" трактую как "отключены/занулены") KriziunЭто понятно, вопрос в том как минимизировать и/или упростить, обрабатываемый в дальнейшем, резалтсет, что напрямую зависит от структуры.Не зависит. Нагрузка на сервер при формировании нужного резалтсета - да зависит, но его самого можно из любых данных получить. Вопрос в том, в каком виде он будет нужен вам и прочим обработчикам этих данных :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 13:17:54 |
|
||
|
Помогите правильно продумать структуру таблиц 2
|
|||
|---|---|---|---|
|
#18+
tanglirНе зависит. Нагрузка на сервер при формировании нужного резалтсета - да зависит[/quot] Ну я об этом же - т.е. придется балансировать между нагрузкой на сервер/клиент. А по структуре, да примерно о такой и думал, но тогда остается вопрос куда привязать результат выбранного набора опций - не список их id а именно произвольное число введенное пользователем именно для данного набора. Можно сохранять список опций как строку перечисления их id - "id1,id2..." по иерархии групп и вторым полем "результат", что в дальнейшей работе не сильно удобно. Но по всей видимости придется делать именно так, спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 13:50:30 |
|
||
|
Помогите правильно продумать структуру таблиц 2
|
|||
|---|---|---|---|
|
#18+
Kriziunрезультат выбранного набора опций - не список их id а именно произвольное число введенное пользователем именно для данного набора.нашли проблему... selection:{id,iduser,произвольное_число,...} selection_detail:{idselection,idoption,flag,...} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 13:55:54 |
|
||
|
Помогите правильно продумать структуру таблиц 2
|
|||
|---|---|---|---|
|
#18+
tanglirKriziunрезультат выбранного набора опций - не список их id а именно произвольное число введенное пользователем именно для данного набора.нашли проблему... selection:{id,iduser,произвольное_число,...} selection_detail:{idselection,idoption,flag,...} Да действительно, таким способом можно легко получить иерархию и значения. И необходимые методы для работы с формами можно будет достаточно легко реализовать. Ещё раз спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:27:30 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=204&tid=1835882]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 301ms |

| 0 / 0 |
