Today I designed a lab with the OSPF Topology in mind.
This way you don't have to play with loopback interfaces and/or OSPF priority.
It is a kind of hub-and-spoke topology with Cisco routers.
My Central R11 Router had the highest IP (and consequently highest RID) of every other network, so, on the 4 local segments where my Central R11 Router was connected, it always had the DR role.
The peripheral segments, by having their own elections on their directly attached segments, were also fixed with the highest RID, so, for example, R4 (RID 10.100.80.1) was always the DR for the 10.10.7.0/24 and 10.10.6.0/24 segments.
Easy, working and pretty damn manageable.
Here's my R11 config code:
ip address 10.100.100.254 255.255.255.0
ip address 10.100.90.254 255.255.255.0
ip address 10.100.80.254 255.255.255.0
ip address 10.100.70.254 255.255.255.0
router ospf 11
network 10.100.100.0 0.0.0.255 area 0
network 10.100.90.0 0.0.0.255 area 0
network 10.100.80.0 0.0.0.255 area 0
network 10.100.70.0 0.0.0.255 area 0
Please note I did use a speed of 10 and half-duplex to avoid problems, since I've experienced duplex mismatch errors between some I/Fs, so the other routers should be configured similarly to maintain consistency.
Also note this is just a lab and should not to be considered for real world production networks (i.e.:SPoF, etc.).
The most useful commands I found myself typing are:
sh ip ospf
sh ip ospf int f0/0
The 1st one shows you your OSPF Process ID. The 2nd one shows you who the DR is.