This paper proposes design schemes which obtain an efficient spare-channel assignment against single and double link failures for a self-healing network. Spare-channel design problems can be formulated as a linear-programming (LP) problem when variables are assumed to be continuous. For the problem, the proposed algorithm effectively solves a sub-set of whole constraints by making use of a maximum-flow algorithm in an iterative manner. It is shown that the maximum number of iteration times is limited by the number of links in the network. Moreover, the relation between the design function and the self-healing function is discussed. It is also shown that the cooperation of the two functions can realize more effective control in large scale networks.