Is it possible in a single cell to record some SQL FOREIGN KEY?

Going to write the app in C++ Qt, to conduct projects in the company (tracking the development stage of the product, completeness of documentation, assignment of decimal numbers and the like). The question arose of the organization of the SQLite database. The fact that not all stages of development requires a full house of documents - a statement of purchased products is not necessary, somewhere in approving the leaves. A lot of questions. How to display this in the database?

I have invented the following structure - three tables on the types of documents (for CD, for TD and PD)(BOM, Route map, etc.), three tables for the documents themselves (a relative path, title, artist ...) and one table with the stages ( name, code ...). So, how to display the above mentioned fact that not all documents at all stages of need? And if to be attached to the subject matter, then I, putting in a table of the "stage" column "required documents" to push the cell all ajtishniki necessary documents? Or one cell - one FOREIGN KEY?
Yes, crumpled asked dumped a lot of off-topic question, but do it consciously, as my approach is likely to do not true test, then can someone tell me how it design?
June 14th 19 at 21:01
1 answer
June 14th 19 at 21:03
Theoretically You can in one field to push the entire list of record IDs, as a string, as an array, etc., but this is a very bad approach. I understand that You need a many-to-many: should be a table in which one column is id "stages", and the second corresponding to these stages of the id documents.
I thought so once, but didn't want to produce extra connecting links... Okay, thanks for the advice. - Major.Schmeler commented on June 14th 19 at 21:06

Find more questions by tags SQLSQLite