хранение большого кол-ва информации

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
valedo
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 29.01.2002 (Вт) 19:47

хранение большого кол-ва информации

Сообщение valedo » 15.03.2003 (Сб) 21:52

База данных Access

есть на форме 25 check-боксов (поле "Интересы"), в регистрацоинной форме.

Как выгоднее хранить данную информацию в БД?

:arrow: создать для каждого поля логическое поле (ДА/Нет)
или
:arrow: преобразовать все (25 check-боксов) в строку типа "1" и "0" вроде ....100011101... и хранить в одной ячейке, потом доставть и форматировать/разделять?

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 16.03.2003 (Вс) 2:18

Это смотря в какой ситуации. Если частые обращения к этим данным, то лучше для каждой переменной своё поле. Особенно это важно, если на основании этой информации строятся сложные запросы-фильтры. Если же инфа только для "шоб було" и, как в твоём случае, используется редко, то ИМХО лучше слить их все в одну строку и не заморачиваться.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 17.03.2003 (Пн) 12:01

А еще небольшое такое соображение - большое количество информации лучше вообще не хранить в Access. Используй лучше MSDE или SQL Server.

valedo
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 29.01.2002 (Вт) 19:47

Сообщение valedo » 17.03.2003 (Пн) 13:43

по другому не умею, если даш ссылку на инфо, то я буду благодарен :shock:

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 17.03.2003 (Пн) 13:51

Есть отличная статья для начинающих в MSDN. Называется "Microsoft Data Engine (MSDE) for Microsoft Visual Studio 6.0: An Alternative to Jet for Building Desktop and Shared Solutions"



Почитай :)

Colonel
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.11.2002 (Пт) 12:39
Откуда: Russia

Сообщение Colonel » 18.03.2003 (Вт) 6:57

Есть неплохой сайт www.SQL.ru по созданию и программированию баз на SQL-Server

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 18.03.2003 (Вт) 17:06

Я так понимаю, что у человека локальная задача храния большого кол-ва битовых данных, которая успешно решаема в Access, а вы ему сразу предлагаете сменить платформу БД, что повлечёт за собой громаднейшую работу по переписыванию проекта, тех же SQL-запросов.

Кстати, для экономии места, вместо строки можно хранить число, где необходимые данные будут представлены степенями двойки. Для хранения 25-ти штук битовых характеристик достаточно всего 4-х байт вместо 25-ти (выигрыш в 6 с четвертью раз!) и ещё 7 битов останется для расширения.

Доступ к таким образом закодированным данным не сложнее чем вычитывание символа из строки.

Код: Выделить всё
'структура для удобства обращения к данным
Public Enum MyBitPropertiesEnum
    isHuman = 0
    isWuman = 1
    hasOneEye = 2
    hasOneEgg = 3
    ...
End Enum

'массив для удобной работы с данными
Public MyBitValue(0 To 24) As Boolean

'возвращает значение бита
Public Function GetBitValue(ByVal Expression As Long, ByVal MyBitProperty As MyBitPropertiesEnum) As Boolean
    GetBitValue = Expression And (2 ^ MyBitProperty)
End Function

Public Sub InitMyBitValue(ByVal Expression As Long, Value)

    Dim i%

    For i = 0 To UBound(Value)
        Value(i) = Expression And (2 ^ i)
    Next
End Sub

Public Function CreateMyBitValue(Value) As Long

    Dim i%
    Dim res%

    For i = 0 To UBound(Value)
        If (Value(i)) Then res = res Or (2 ^ i)
    Next

    CreateMyBitValue = res

End Function

...

If (MyBitValue(hasOneEgg)) Then Debug.Print "Invalid!"



Ну, или что-нибудь типа этого.

valedo
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 29.01.2002 (Вт) 19:47

Сообщение valedo » 18.03.2003 (Вт) 18:04

вот это круто, ^^^^^^^^^^^^^^^^^ спасибо,
зашел я на сайт [url]www.SQL.ru[[/url], намана, только та статистика, которая "какую вы используете базу данных", меня не очень порадоавала и я понял, что над этим надо подумать, спасибо всем за внимание.

sanches
El compañero
El compañero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 19.03.2003 (Ср) 20:15

2 skiperski
такая фишка, помниться, еще в Q (Quske :lol: ) использовалясь :D
Изображение


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53

    TopList