我正试图解决一个难题 more info 。所以我有这些作品创作的作品和解决方案。
Pieces: piece_id
Solution: solution_id
如果我有三件将有8个解决方案 2 ^ 3 。我的想法是使用solution_id
来表明哪些部分是其中的一部分。
solution_id pieces
0 000 -- no pieces (not really a solution)
1 001 -- only the piece_id = 1
2 010 -- only the piece_id = 2
3 011 -- have piece 1 and 2
4 100
5 101
6 110
7 111 -- all pieces (not really a solution because need solve two parts)
我需要两个解决方案,但solution2
无法在solution1
上找到任何内容
问题是:
有更好的方法吗?
SELECT s1.solution_id, s2.solution_id
FROM solutions
WHERE s1.solution_id & s2.solution_id = 0
答案 0 :(得分:0)
您似乎知道问题的答案:
但是,您可以以不同方式存储数据。更好的数据结构是:
solution_id piece
1 1
2 2
3 1
3 2
. . .
然后你可以使用连接和更传统的数据库操作。