2012-03-18 2 views
0

У меня есть база данных SQL Server, содержащая реальные данные (например, имена клиентов, ecc).
Я хотел бы преобразовать его в БД, чтобы показывать в презентациях, не показывая настоящие имена, содержащиеся там.Создание анаграмм для тестовой базы данных

Одним из решений может быть преобразование настоящих имен в анаграммы (например: клиент с именем «abcdefg» может стать «cfadgbe»), так что оригинальное имя не слишком легко узнаваемо.

Если вы сделали что-то подобное в прошлом (возможно, в VB.NET, но C# тоже в порядке), я бы очень не хотел писать с нуля такую ​​процедуру.

(Если вы сделали что-то другое с той же целью ... то это будет тоже нормально!)

+1

Возможно, вы захотите найти Алгоритм Shuffle вместо анаграмм. ex: http://www.codinghorror.com/blog/2007/12/shuffling.html –

ответ

2

У меня была та же проблема. Я решил это, создав случайные комбинации первых имен и фамилий, которые я собрал в отдельной таблице для этой цели. Я также применил эту технику к адресам (улица, город) и создал случайные номера телефонов. Эти поддельные адреса выглядят как реальные адреса.

Dim firstNames = New List(Of String) 
Dim lastNames = New List(Of String) 

'TODO: Fill these lists with names 

Dim random = New Random() 
Dim numberOfAddresses = 100 
For i As Integer = 0 To numberOfAddresses - 1 
    Dim f = random.Next(firstNames.Count) 
    Dim l = random.Next(lastNames.Count) 
    Dim name = firstNames(f) & " " & lastNames(l) 
    'TODO: update this name in the db 
Next 
+0

Не совсем то, что я искал, но хороший код для начала. –

1

Почему с помощью анаграммы? почему бы просто не создать случайные имена? Вы можете написать короткий процесс, чтобы сохранить список из 100 первых имен и 100 фамилий и обновить свои записи случайным микс, если оба они позволят вам иметь «понятные» имена для customesr вместо нечитаемой смеси писем. ..

+0

Анаграммам было бы легче для меня запомнить истинные имена клиентов. Но ваше предложение хорошее, и я мог бы разработать для меня что-то подходящее. –

Смежные вопросы