We study two geometric variations of the discriminating code problem. In the discrete version, a finite set of points P and a finite set of objects S are given in Rd. The objective is to choose a subset S∗ ⊆ S of minimum cardinality such that the subsets Si∗ ⊆ S∗ covering pi, satisfy Si∗ 6= ∅ for each i = 1, 2, . . ., n, and Si∗ =6 Sj∗ for each pair (i, j), i =6 j. In the continuous version, the solution set S∗ can be chosen freely among a (potentially infinite) class of allowed geometric objects. In the 1-dimensional case (d = 1), the points are placed on some fixed-line L, and the objects in S are finite segments of L (called intervals). We show that the discrete version of this problem is NP-complete. This is somewhat surprising as the continuous version is known to be polynomial-time solvable. This is also in contrast with most geometric covering problems, which are usually polynomial-time solvable in 1D. We then design a polynomial-time 2-approximation algorithm for the 1-dimensional discrete case. We also design a PTAS for both discrete and continuous cases when the intervals are all required to have the same length. We then study the 2-dimensional case (d = 2) for axis-parallel unit square objects. We show that both continuous and discrete versions are NP-hard, and design polynomial-time approximation algorithms with factors 4 + ∊ and 32 + ∊, respectively (for every fixed ∊ > 0).