powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite. SQLiteStudio и Foreign Key.
5 сообщений из 5, страница 1 из 1
SQLite. SQLiteStudio и Foreign Key.
    #39829467
Druid8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Использую программу SQLiteStudio (но вопрос к любой программе), для работы с SQLite.

Там сделал связь таблицы A по Foreign Key к таблице B, все работает.

ВОПРОС: можно ли сделать так, что бы при создании записи в таблице A она автоматом создавала в таблице B ?

То есть сейчас мне приходится в 2 раза больше делать действий. Вводить в таблицу B строки и потом в таблице A их выбирать. Но может как то можно, что бы таблица A автоматом создавала в таблице B строки с ключом??
...
Рейтинг: 0 / 0
SQLite. SQLiteStudio и Foreign Key.
    #39829499
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала почитай теорию реляционных БД (основы про нормальные формы, страниц 20-30) и потом поймешь что твой вопрос не имеет смысла. Наверно попутно поймешь как по-другому решать свою проблему.
...
Рейтинг: 0 / 0
SQLite. SQLiteStudio и Foreign Key.
    #39829656
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Druid8,

Твой вопрос звучит как: "я тут поставил забор чтоб не лазили, как теперь сделать чтобы подходя к забору автоматически через него перелезали?".

Но да, сделать это можно. Есть такая штука https://www.sqlite.org/lang_createtrigger.html
...
Рейтинг: 0 / 0
SQLite. SQLiteStudio и Foreign Key.
    #39829964
Druid8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Объясняю в чем смысл.

У меня есть таблица допустим Classes, есть таблица Localization.

В Localization колонки Key RU EN ....
То есть есть ключ и переводы на этот ключ.
Key на него ссылаются другие таблицы через Foreign Key.

Есть Classes в которой колонки типа id, name вот именно name и ссылается на Localization.Key что бы потом когда делаю запрос к Classes я получаю перевод на нужный язык колонки Name.

сейчас мне приходится сначала добавлять ключ в таблицу Localization. Что бы потом добавлять записи в Classes и в name выбирать эти ключи.

Было бы удобнее если бы я создавая записи в Classes, если нет ключа по name, он сам создает его в Localization.Key.

В чем я не прав? Как сделать лучше.

Я не много работал с базами, про триггеры не знаю. Скажите если лучше их использовать.
...
Рейтинг: 0 / 0
SQLite. SQLiteStudio и Foreign Key.
    #39830115
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Druid8В Localization колонки Key RU EN ....Уже ужас.
А если ты добавишь новый язык, ты будешь колонку добавлять?
А если ты по какой-то причине забыл написать текст в колонку языка, а у тебя пользователь хочет этот язык. Ты будешь ему пустоту показывать?

Локализация вообще делается совершенно другими способами, похожими на базы данных, но технически другими.
Скажи на каком языке ты пишешь, подскажем как это делать правильно.

В принципе можно и в базе данных хранить переводы, но тогда делают таблицу переводов в виде трех полей:
Код: sql
1.
2.
3.
4.
5.
create table Localization (
   key,
   language,
   translation
)


При этом ключ стараются делать строкой на "основном" языке. Не важно что у тебя за язык включен сейчас - у тебя будет либо перевод по паре key+language, а если такой строки не найдено (не перевел еще) то можно сам ключ показать пользователю.

Можно делать ключ и суррогатным, но тогда тебе надо будет следить чтобы был обязательно перевод на основной язык. Это делается обычно внешней вспомогательной программой. Ты в своем коде все строки которые надо бы перевести оформляешь специальным образом, прогоняешь исходник этой программой и получаешь один "основной" язык.
Это и будет у тебя созданием ключей которые ты хочешь.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite. SQLiteStudio и Foreign Key.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]