Конференция "Базы" » delphi or sql? [D7, MSSQL]
 
  • azamat (27.10.08 09:57) [0]
    Здравствуйте всем.

    Задался вопросом, что будет быстрее(лучше): хранить инфу в одной таблице в одном поле(строка 50-100 символов) и в дельфи разбивать на нужные данные по необходимости или создать 3-4(может больше) таблиц, и хранить в них уже разобранные строки?

    delphi7, mssql2005.

    Заранее благодарен.
  • azamat (27.10.08 10:12) [1]
    Примечание. Хранил бы в одной таблице, но при разбиении строк получается разное количество подстрок.
  • Ega23 © (27.10.08 10:16) [2]

    > Задался вопросом, что будет быстрее(лучше):


    Быстрее - зависит от конкретной прикладной задачи.
    Правильнее и лучше - почитать про реляционные базы данных.
  • azamat (27.10.08 10:29) [3]

    Нормализация - это процесс приведения структур данных в состояние, обеспечивающее лучшие условия выборки, включения, изменения и удаления данных. Это достигается разбиением одной большой таблицы на две более мелкие таблицы


    Из этого следует, что мне лучше бы разбить на разные таблицы, чем заниматься работой со строками в дельфи?
  • Ega23 © (27.10.08 10:31) [4]

    > Из этого следует, что мне лучше бы разбить на разные таблицы,
    >  чем заниматься работой со строками в дельфи?


    Конечно.
    Очень сильно подозреваю, что ты пытаешься решить проблему "многие-ко-многим" через задницу.
  • azamat (27.10.08 10:37) [5]
    Я же не обозначил свои задачи, почему ты решил, что у меня "многие-ко-многим"?
  • azamat (27.10.08 10:39) [6]

    > проблему "многие-ко-многим"

    Даже если так, то почему это проблема?
  • azamat (27.10.08 10:39) [7]

    > проблему "многие-ко-многим"

    Даже если так, то почему это проблема?
  • megabyte © (27.10.08 11:31) [8]
    Так обозначил бы задачу, тогда бы и подсказывать было проще и тебе полезнее!
  • Ega23 © (27.10.08 12:00) [9]

    > Я же не обозначил свои задачи, почему ты решил, что у меня
    > "многие-ко-многим"?


    Потому, что это стабильная проблема начинающих: не укладывается в голове, как многие-ко-многим или один-ко-многим сделать.

    А вообще megabyte прав - проблему уточни.
  • azamat (27.10.08 12:39) [10]
    Спасибо, попытался описать проблему полностью - а это придётся структуру базы(хотя бы вкратце) описывать, в общем, я обломался это делать. )
    По сути вопроса я в принципе понял - если в скуле всё нормализовать, то такой проблемы уже не возникнет, спасибо вам.
  • Ega23 © (27.10.08 12:56) [11]

    > По сути вопроса я в принципе понял - если в скуле всё нормализовать,
    >  то такой проблемы уже не возникнет, спасибо вам.


    Да незачто пока...  :)
    Просто уже среди товарищей, которые только начинали с БД работать, неоднократно вопрос возникал (например):
    Делаю "фильмотеку", есть таблица актёров, есть таблица фильмов. А вот когда в фильме больше одного актёра играет (хе-хе) как делать: заводить в таблице Films столбец Actors и строкой ID актёров через разделитель перечислять?

    Я, собственно, почему про один-ко-многим тебя и спросил..  :)
  • azamat (27.10.08 13:12) [12]
    Ну да, почти такая же мысль у меня возникла поначалу ;)
    Только тут с абитурой, и несколько предметов у них.
    Я так понимаю надо дополнительную таблицу просто - (ID, id_abiturienta, id_predmeta, ball) и все дела )
  • Ega23 © (27.10.08 13:23) [13]

    > Я так понимаю надо дополнительную таблицу просто - (ID,
    > id_abiturienta, id_predmeta, ball) и все дела )


    Правильно понимаешь.
    Только вторичные ключи для целостности данных выставить не забудь.
    И ещё: настоятельно не рекомендую использовать название столбца "ID". В большинстве случаев - зарезервированное слово.
    Используй, например, "UNID" или "UID" (Unique Identifier).
  • sniknik © (27.10.08 13:26) [14]
    > В большинстве случаев - зарезервированное слово.
    это в каком сервере/движке? ни разу не встречал... т.е. это практически всегда незарезервированное слово.
  • Ega23 © (27.10.08 13:32) [15]

    > это в каком сервере/движке? ни разу не встречал... т.е.
    > это практически всегда незарезервированное слово.


    MSSQL. подсвечивает. Значит - резервированное. Может и неявно, типа как "at".
  • ЮЮ © (29.10.08 04:40) [16]

    > MSSQL. подсвечивает


    В каком, интересно, месте светит? :) MSE от 2005 Express не дает никакого особого света.

    A IDE Index здесь зачем-то подсвечивает.
    property Prop[Index: integer]: ...
    И что?
  • Ega23 © (29.10.08 09:40) [17]

    > MSE от 2005 Express не дает никакого особого света.


    Query analyzer - даёт
  • clickmaker © (29.10.08 12:40) [18]
    create table SomeTable
    (
     [ID] int not null,
     [Name] varchar(32) not null,
     [Description] varchar(256) null

    там до хрена этих "подсвеченных" слов. Что ж теперь - от всех отказываться?
  • Ega23 © (29.10.08 13:01) [19]

    > Что ж теперь - от всех отказываться?


    Нет. Но это как с тем самым приснопамятным goto. Есть оператор? Есть. Можно использовать? Да, можно. Рекомендуется использовать? Ещё ни одной рекомендации не видел. Хотя пару раз сам использовал.
  • clickmaker © (29.10.08 13:17) [20]
    кстати, 2005 id уже не подсвечивает
  • sniknik © (29.10.08 13:23) [21]
    > Ещё ни одной рекомендации не видел.
    а я против использования ID. ни разу (в этой ветке не считается). подсветку в QA вроде видел, редко им пользуюсь, но даже если и видел то как то не обратил внимания.
  • sniknik © (29.10.08 13:25) [22]
    > кстати, 2005 id уже не подсвечивает
    исправили ошибку в "светильнике" или отказались от планов сделать зарезервированным. (если были такие)

    at проверь
  • Ega23 © (29.10.08 13:45) [23]

    > at проверь


    У меня 2005 нет. В QA из дистрибутива 2000 - подсвечивает.
    Собственно, откуда заметил - была у меня табличка AnimationTemplates. Естественно, в качестве алиаса в конструкции from само-собой напрашивается AT. Вот и обратил внимание (даже года 2 назад ветку по этому поводу поднимал).

    ID тоже подсвечивает.
  • clickmaker © (29.10.08 14:00) [24]
    > at проверь

    не подсвечивает
  • Ega23 © (29.10.08 14:51) [25]

    > не подсвечивает


    Ну когда я ветку поднимал, кто-то ссылку на microsoft давал, дескать это дело "на всякий пожарный" зарезервировано на будущее. Видимо в 2005-м передумали.
  • Anatoly Podgoretsky © (29.10.08 16:18) [26]
    > clickmaker  (29.10.2008 12:40:18)  [18]

    Не надо отказываться, просто надо использовать каноническую, а не сокращеную форму, Как приведено в кавычках, в соответствии с синтаксисом СУБД.
  • Anatoly Podgoretsky © (29.10.08 16:23) [27]
    > sniknik  (29.10.2008 13:23:21)  [21]

    Ни EM, ни QA не являются удобным инструментом, из-за своих понятий как должен выглядеть запрос и делающий это самовольно, SSMS от этого почти ушел.
  • Anatoly Podgoretsky © (29.10.08 16:24) [28]
    > Ega23  (29.10.2008 13:45:23)  [23]

    QA это свои понятия как подсвечивать, к резервированым словам не имеет отношения.
 
Конференция "Базы" » delphi or sql? [D7, MSSQL]
Есть новые Нет новых   [134477   +39][b:0.001][p:0.001]