2014-12-03 2 views
0

Я пытаюсь создать таблицу для MLM (многоуровневый маркетинг), но у меня возникла проблема с созданием таблицы.Как создать дизайн таблицы MLM

CREATE TABLE `mlmpair_tbl` (
    `parentid` INT(11) NOT NULL, 
    `left` INT(11) NOT NULL, 
    `right` INT(11) NOT NULL, 
    `pairamount` DECIMAL(10,2) NOT NULL 
) 
COLLATE='latin1_swedish_ci' 
ENGINE=InnoDB 

Я не знаю, нахожусь ли я на правильном пути. Требование довольно просто, если у элемента есть левый и правый узлы, тогда ему будут даны некоторые точки, а также узлу его родителей будут даны некоторые очки.

Я надеюсь, что кто-то может мне посоветовать или дать мне несколько указателей.

Добавлено некоторые данные:

parentid   left  right  amount 
11     12     0.00 
12     13   14   1000.00 
13     15   16   1000.00 

второй ряд имеет левую и правую, чтобы его ParentId 12 будет дано некоторые точки пример 1000,00, то 11 является ParentId 12 так ParentID 11 будет дано также некоторые пионы. в третьей строке parentid 13 завершил левый и правый узлы, поэтому ему будут даны очки, тогда его родителям будет 12,11, а также будут указаны очки в 1000.00.

Это то, чего я хочу достичь.

Заранее спасибо.

+0

Ваше заявление о создании прекрасно: http://www.sqlfiddle.com/#!2/53bdd. –

+0

, но я путаюсь, как обновить сумму, если строка закончена слева и справа для всех его родителей. – ashTon

+0

, скорее всего, это какой-то родительский дочерний узел дерева с неограниченной структурой глубины. человек, это будет боль, пытающаяся совместить пары узлов, если вы не найдете для этого алгоритма. – Ghost

ответ

0

Кажется, что вам нужно иметь правильное определение «суммы», чтобы справиться с этим. Но, как только у вас есть способ вычисления, вероятно, вы понимаете, что лучше всего вычислить его с помощью процедуры, а не хранить ее значение в таблице. Однако возникают некоторые проблемы с производительностью и т. Д., Поэтому это зависит от вашей цели ...

Смежные вопросы