Самы элегантны спосаб для барацьбы з дубляваных запісаў

Я працую над рашэннем для прадухілення дубліравання запісаў у базу дадзеных, якая можа адбыцца ў выніку маёй канфігурацыі.

Я планую зрабіць md5 хэш некаторых значэнняў і праверыць табліцу, каб убачыць, ці існуе ўжо гэты хэш.

Ці з'яўляецца гэта больш эфектыўна дасягаецца з дапамогай табліцы MySQL ці нешта ўздоўж ліній тэкставага файла на сэрвэры?

Можа хто-небудзь прапанаваць больш элегантнае рашэнне?

Я ўдзячны за любую дапамогу і ўсё.

0
што вы захоўваеце ў базе дадзеных? якія запісы?
дададзена аўтар evilone, крыніца
Калі вы выкарыстоўваеце InnoDB рухавік, праверыць знешнія ключы і індэксы палёў.
дададзена аўтар Chris Laplante, крыніца

1 адказы

You can create a UNIQUE INDEX and add to it the column set in which values you don't want to be duplicated. Then the DB will return you an error on every transaction that attempts to duplicate that data. Check this: Create Index on MySQL reference

3
дададзена
Я рабіў гэта сёння з некаторымі зусім жудаснымі дадзенымі з архаічных баз дадзеных MS SQL. Гэта нагрузак весела ...
дададзена аўтар Bojangles, крыніца
Дзякуй - я не думаў пра гэта варыянце, таму што гэта камбінацыя слупкоў (не які-небудзь адзін слупок), які павінен быць унікальным. Гэта гучыць нашмат прасцей, чым стварэнне новай табліцы толькі для праверкі і хутчэй/менш нагрузкі на сэрвэры.
дададзена аўтар JohnCharles117, крыніца