что хороший путь к горизонтальному черепку в postgresql

Дэн Дайер отвечает правильно. Я хотел бы пояснить немного, чтобы прояснить это на примере. Вы можете использовать такой макет (он называется config.xml в res / layout).

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:myapp="http://schemas.android.com/apk/res/com.xxxx" android:layout_height="fill_parent"
                android:layout_width="fill_parent">

    <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent"/>

    <com.admob.android.ads.AdView
            android:id="@+id/ad"
            android:layout_alignParentBottom="true"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            myapp:backgroundColor="#000000"
            myapp:primaryTextColor="#FFFFFF"
            myapp:secondaryTextColor="#CCCCCC"/>

</RelativeLayout>

В своей деятельности, которая расширяет PreferenceActivity, вы пишете что-то подобное в методе onCreate;

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.config);
  }
18
задан pylabs 15 June 2009 в 07:33
поделиться

2 ответа

pl / proxy (по Skype) - хорошее решение для этого. Для этого требуется, чтобы ваш доступ осуществлялся через API функций, но как только он у вас есть, он может сделать его довольно прозрачным.

5
ответ дан 30 November 2019 в 07:04
поделиться

PostgreSQL позволяет разбивать разделы двумя разными способами. Один по диапазону, а другой по списку. Оба используют наследование таблиц для разделения.
Разделение по диапазону, обычно диапазону дат, является наиболее распространенным, но разделение по списку может быть полезно, если переменные, составляющие раздел, статичны и не искажены.

Разделение выполняется с помощью наследования таблиц, поэтому первое, что нужно сделать, это создать новые дочерние таблицы.

CREATE TABLE measurement (
    x        int not null,
    y        date not null,
    z        int
);

CREATE TABLE measurement_y2006 ( 
    CHECK ( logdate >= DATE '2006-01-01' AND logdate < DATE '2007-01-01' )
) INHERITS (measurement);

CREATE TABLE measurement_y2007 (
    CHECK ( logdate >= DATE '2007-01-01' AND logdate < DATE '2008-01-01' ) 
) INHERITS (measurement);

Затем необходимо использовать правила или триггеры для удаления данных в правильные таблицы. Правила выполняются быстрее при массовых обновлениях, срабатывают при единичных обновлениях, а также их легче поддерживать. Вот образец триггера.

CREATE TRIGGER insert_measurement_trigger
    BEFORE INSERT ON measurement
    FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger();

и триггерная функция для вставки

CREATE OR REPLACE FUNCTION measurement_insert_trigger()
RETURNS TRIGGER AS $$
BEGIN
    IF ( NEW.logdate >= DATE '2006-01-01' 
         AND NEW.logdate < DATE '2007-01-01' ) THEN
        INSERT INTO measurement_y2006 VALUES (NEW.*);
    ELSIF ( NEW.logdate >= DATE '2007-01-01' 
            AND NEW.logdate < DATE '2008-01-01' ) THEN
        INSERT INTO measurement_y2006m03 VALUES (NEW.*);
    ELSE
        RAISE EXCEPTION 'Date out of range.';
    END IF;
    RETURN NULL;
END;
$$
LANGUAGE plpgsql;

Эти примеры представляют собой упрощенные версии документации postgresql для облегчения чтения.

Я не знаком с pgpool2, но gridsql - это коммерческий продукт, разработанный для EnterpriseDB, коммерческой базы данных который построен поверх postgresql. Их продукция очень хороша, но я не думаю, что она будет работать на стандартном postgresl.

19
ответ дан 30 November 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: