Using IDs from multiple tables in a single column
Your self-reference could introduce a hierarchy of divisions within divisions. You need code (usually a trigger) to ensure that no divisions allow this.

The original schema using encoding is broken too. You have no enforceable FK

Personally, I'd consider this with a check constraint to ensure than only one of DepartmentID and DivisionID per row is populated

Article
-------
ArticleID (PK) int NOT NULL
DepartmentID (FK) int NULL
DivisionID (FK) int NULL
ArticleName varchar(50) NOT NULL


Why?


no code needed
no nested divisions
full DRI via FKs to parent table
enforced "multiple parent, only one at a time"


You could also use computed columns to add a column that says "department" or "division"

Another way: mandate that each department has at least one division...