Цитата:
	
	
		
			
				
					Сообщение от  Saruman
					 
				 
				А если серьёзно - то твоя проблема в том, что ты для ряда из таблицы hash не сможешь быстро получить соответствующий ему ряд из таблицы sample. 
			
		 | 
	
	
 Мдя.. что-то я вчера недодумал про чтение. По-моему я вообще это прочитать не смогу так как декодировать хэш будет сложновато.

. Но вопрос сформулирован точно.
sample_hash_2 присутствует по непонятной мне причине 

 Програма сама тянет все индексы из пред. таблицы. и фиг ей объяснишь что они там не нужны 
	Цитата:
	
	
		
			
				
					Сообщение от  Saruman
					 
				 
				сделать UNIQUE(basic2_b1_id, basic2_b2_id) и в таблице hash заменить искусственный и, на мой взгляд, совершенно ненужный sample_hash_2 на sample_id. ... 
			
		 | 
	
	
 sample_id полностью заменяет  basic2_b1_id, basic2_b2_id, это поле увеличивается по мере (auto incr.), уникально для всей таблицы sample.
Если делать так то получится настоящий 1:n. На одно значение hash много sample, но тогда очень сложно писать, так как я хочу проверять есть ли уже такое в базе. То есть имея 15шт. sample_id мне нужно найти им hash_id если такой уже есть. Причем этот же hash_id не должен соответствовать допустим 20ти sample_id.
В случае с хэшем всем sample соответствует только 1 hash. Но тогда не прочитать 

. Из плюсов так же что сколько бы sample у меня не было значений в sample им соответствует на 32 числа. 
То есть получается ситуация когда я могу сделать так, чтобы было удобно писать, было удобно читать, но не то и другое.
В идеале тогда получается что таблица hsh должна выглядеть так для одного hash_id:
table hash
hash_id : sample_id: sample_hash (md5(sample_1.sample_2... sample_n).)
3 : 01 : 677878345767
3 : 06 : 677878345767
3 : 92 : 677878345767
3 : 01 : 677878345767
3 : 01 : 677878345767
тогда при чтении я ищу по hash_id(или по sample_hash), а когда читаю ищу hash_id по sample_hash. Очень похоже не то что ты предложил.