background preloader

Ten Common Database Design Mistakes

Ten Common Database Design Mistakes
No list of mistakes is ever going to be exhaustive. People (myself included) do a lot of really stupid things, at times, in the name of “getting it done.” This list simply reflects the database design mistakes that are currently on my mind, or in some cases, constantly on my mind. I have done this topic two times before. Before I start with the list, let me be honest for a minute. So, the list: Poor design/planning Ignoring normalization Poor naming standards Lack of documentation One table to hold all domain values Using identity/guid columns as your only key Not using SQL facilities to protect data integrity Not using stored procedures to access data Trying to build generic objects Lack of testing Poor design/planning “If you don’t know where you are going, any road will take you there” – George Harrison Prophetic words for all parts of life and a description of the type of issues that plague many projects these days. Ignoring Normalization Are there always 12 payments? Maintainability Related:  shiny stufftriertrier

Five simple database design tips A flawed database can affect all areas of your application, so getting the design right is of paramount importance. Check out Builder's five simple design tips, and share some of your own. If an enterprise’s data is its lifeblood, then the database design can be the most important part of an application. I’ll get the show started by listing my five favorite tips and giving a brief explanation of the rationale behind each one. #1: Use meaningful field namesI once worked on a project I inherited from another programmer who liked to name fields using the name of the onscreen control that displayed the data from that field. Unless you are using a system that restricts you to short field names, make them as descriptive as possible—within reason, of course. #2: Do your homeworkNot only should you research your business needs when designing a new database, you should check out the existing system, as well. Restrict the user from editing the field after the record’s creation.

The one-to-many relationship On the page about linking tables I showed you how data from different tables can be linked by defining a foreign key relationship. You saw how orders are linked to customers by including the customer_id as a foreign key in the orders table. Another example of a one-to-many relationship is the relationship that exists between a mother and her children. (Technically it would be better to speak of a woman and her children instead of a mother and her children, because in a one-to-many relationship a mother can have 0, 1 or many children and a mother with 0 children isn't technically a mother. When one record in table A can be linked to 0, 1 or many records in table B, you are dealing with a one-to-many relationship. A schematic representation of a one-to-manyrelationship. How to identify a one-to-many relationship? When you have two entities ask yourself these questions. How many entities of B can belong to entity A? Examples Some examples of one-to-many relationships are listed below.

Study: China’s ‘Great Firewall’ may not actually isolate Internet users The researchers' visualization of "culturally defined markets" -- the interconnected, language- and geography-based groups into which Internet users naturally separate. The clearest markets in this diagram are English (white), Chinese (red), Japanese (green) and Russian (fuscia). (Northwestern University) Everyone from Hillary Clinton to Amnesty International has bashed China’s “Great Firewall” as an impediment to free speech and democracy. That’s what makes a new study out of Northwestern University both odd and intriguing: According to its authors, media researchers Harsh Taneja and Angela Xiao Wu, Chinese censorship actually has little impact on what people there read online, and Chinese Internet users aren’t particularly isolated, even vis-a-vis users in countries with unrestricted access. What’s more, they essentially argue, the Internet isn’t that grand, global community that connects and equalizes everyone.

The Workshops Of Everything Unity 3 – April 2013 patterns & practices Developer Center April 2013 Unity is a lightweight, extensible dependency injection container with support for instance and type interception. Overview Unity is a lightweight, extensible dependency injection container with support for constructor, property, and method call injection. Simplified object creation, especially for hierarchical object structures and dependencies. Unity is a general-purpose container for use in any type of Microsoft.NET Framework-based application. In addition, Unity is extensible. This release adds support for Windows Store apps as well as the registration by convention feature to ease the task of configuring Unity. Audience Requirements These reusable components and guidance are intended primarily for software developers and software architects. Contents of This Release Microsoft Unity 3 contains the following: Binaries. System Requirements Supported architectures: x86 and x64. For a rich development environment, the following are recommended:

The many-to-many relationship The many-to-many relationship is a relationship where multiple rows from table A can correspond to multiple rows in table B. An example of such a relationship is a school where teachers teach students. In most schools each teacher teaches multiple students and each student can be taught by multiple teachers. The relationship between beer distributors and the beers they distribute is a many-to-many relationship too. A distributor will in most cases distribute more than one type of beer and each type of beer can be distributed by multiple distributors. Note that in database design the question you should ask yourself is not whether a certain relationship exists at the moment, but if a certain relationship is likely to exist in the future. Modelling a many-to-many relationship A many-to-many relationship is modelled with tree tables. All primary keys must be unique. Beer tables Note that in the tables above the primary keys fields are colored blue and underlined.

TokyoBound Ito Seiyu (1882-1961) has been pushing the envelope of kinbaku and torture imagery long before the “Golden Age” of SM magazines, getting some of his better work censored and banned by the authorities, earning him the label of “pervert”. To help you better appreciate this series, first read the following notes on the kanji characters heading each picture and text: Wood (木, ki), Fire (火, hi), Earth (土, tsuchi), Metal (金, kin), and Water (水, mizu) are the “five elements” called Wu Xing (五行) in Chinese. The concepts of Wu Xing can be found anywhere from acupuncture to feng shui (geomancy) to martial arts, and even apply to tea ceremony. Sun (日, hi) and Moon (月, tsuki) plus the five Wu Xing elements also correspond to the days of the week. There goes hardly a description of beauty that doesn’t include the combination of the three kanji characters for Snow (雪, yuki), Moon (月, tsuki), and Flower (花, hana). Now, let’s cut to the chase and enjoy the first installment. Sun 日 (hi) Moon 月 (tsuki) Fire Water

ring of charge Electric Field on the Axis of a Ring of Charge [Note from ghw: This is a local copy of a portion of Stephen Kevan's lecture on Electric Fields and Charge Distribution of April 8, 1996.] We determine the field at point P on the axis of the ring. It should be apparent from symmetry that the field is along the axis. The field dE due to a charge element dq is shown, and the total field is just the superposition of all such fields due to all charge elements around the ring. The perpendicular fields sum to zero, while the differential x-component of the field is We now integrate, noting that r and x are constant for all points on the ring: This gives the predicted result. Electric Field on the Axis of a Uniformly Charged Disk Using the above result, we can easily derive the electric field on the axis of a uniformly charged disk, simply by invoking superposition and summing up contributions of a continuous distribution of rings, as shown in the following figure from Tipler:

Related: